2010-07-30 30 views
2

我在每行上都有一個字符串的文件...即。找到包含「^」的行並用「」代替整行「」

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

我想查找包含「^」的任何行並用空白替換整行。

我試圖用sed:

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

這似乎並不工作,有什麼建議?

回答

4
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

感謝那些沒有工作,有沒有辦法讓完全刪除行?而不是用空行代替它? – Chris 2010-07-30 18:41:43

+0

@Chris查看更新。 – 2010-07-30 18:43:08

+0

正確但是,有沒有辦法在一行中做到這一點?更好奇的緣故,而不是否定你的解決方案...: - )_ – Chris 2010-07-30 18:43:37

0

方式

AWK

awk '!/\^/' file 

慶典

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

,可能最快

grep -v "\^" file 
相關問題