найти строки, содержащие "^", и заменить всю строку на "" - PullRequest
2 голосов
/ 30 июля 2010

У меня есть файл со строкой в ​​каждой строке ... т.е..

test.434
test.4343
test.4343t34
test^tests.344
test^34534/test

Я хочу найти любую строку, содержащую «^», и заменить всю строку пробелом.

Я пытался использовать sed:

sed -e '/\^/s/*//g' test.file

Это не похоже на работу, какие-либо предложения?

Ответы [ 2 ]

4 голосов
/ 30 июля 2010
sed -e 's/^.*\^.*$//' test.file

Например:

$ cat test.file
test.434
test.4343
test.4343t34
test^tests.344
test^34534/test
$ sed -e 's/^.*\^.*$//' test.file
test.434
test.4343
test.4343t34


$

Чтобы полностью удалить ошибочные строки, используйте

$ sed -e '/\^/d' test.file
test.434
test.4343
test.4343t34
0 голосов
/ 31 июля 2010

другие способы

AWK

awk '!/\^/' file

Баш

while read -r line
do
  case "$line" in
    *"^"* ) continue;;
    *) echo "$line"
  esac
done <"file"

и, вероятно, самый быстрый

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