Печатайте определенные строки, используя sed - PullRequest
1 голос
/ 12 апреля 2011

Я пытаюсь напечатать только строки, которые не начинаются с буквы из файла "main"

Я пробовал sed -n '/^[a-z]/ /!w' main, и это дает мне "w": событие не найдено "

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

С sed согласно запросу:

sed '/^[[:alpha:]]/d' main

или

sed -n '/^[^[:alpha:]]/p' main

или

sed -n '/^[[:alpha:]]/!p' main

Примечание : вы можете использовать [a-z] вместо [[:alpha:]], но я предпочитаю последнее, потому что его безопасно использовать в разных локалях

0 голосов
/ 13 апреля 2011

Есть много других способов печати строк

sed -n '/^[^a-zA-Z]/p' main
sed -n '/^[^a-z]/Ip' main 

awk 'BEGIN{IGNORECASE=1}!/^[a-z]/' main

grep -vi "^[a-z]" main

ruby -ne 'print unless /^[a-z]/i' main

ракушка

while read -r line
do
  case "$line" in
    [^a-zA-Z]*) echo $line;;
  esac
done < main
0 голосов
/ 12 апреля 2011
grep -v '^[a-z]' main

сделает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...