SED

2016-09-18 38 views
-2

如何刪除特定字符,但不刪除使用文件,所以我有一個文件SED

a b b c 
a b c d 
a b c d e f 

我如何會刪除字符「B」,但不刪除任何其他使用SED。

+2

一個簡單的方法將使用'TR -d b < file.txt > B-不太file.txt',但欺騙,因爲它不使用'sed'。一些版本的'sed'支持'-i'選項來覆蓋原始文件。如果你想讓相同的代碼與'sed'的Mac OS X(BSD)和Linux(GNU)版本一起使用,請使用'-i.bak'(無空格)。如果你不需要備份文件,你必須以不同的方式處理它們:BSD需要'-i'''(兩個參數,第二個爲空),GNU只需要'-i'(一個參數)。 –

+0

@ John1024我試過使用tr -d

回答

1

這個工作對我來說:sed 's/b//g' file.ext

1

使用sed的也可能是這樣的:

sed 's|[b]||g' 

希望它能幫助。

+1

爲什麼使用字符類時,你可以簡單地使用'| b ||'(或者更傳統地說,'s/b //')?它會起作用,如果你需要刪除'b'和'm'和'z',它會很好地延伸,但是... –

+0

哦,我明白了。你是對的:) @JonathanLeffler –

1

awk:GSUB功能,從所有記錄替換每b

awk '{gsub(/b/," ")}1' fil 
a  c 
a c d 
a c d e f 

sed:桑達液,用什麼(//)或空間(/ /)更換b

sed 's/b//g' fil 
a c 
a c d 
a c d e f 

tr:與空白空間替換b,所以對準不會受到阻礙。

tr 'b' ' ' <fil 
a  c 
a c d 
a c d e f 

tr:從文件中刪除b,這可能會影響文件對齊。

tr -d 'b' <fil 
a c 
a c d 
a c d e f