我有一個輸出:如何使用TR來代替 ' - ' 字符串
--
out1
--
out2
--
out3
我想要得到的輸出:
out1
out2
out3
我想用的:
tr '--' ''
但它不承認' - '是我想要替換的第一個字符串。我該如何解決這個問題?
我有一個輸出:如何使用TR來代替 ' - ' 字符串
--
out1
--
out2
--
out3
我想要得到的輸出:
out1
out2
out3
我想用的:
tr '--' ''
但它不承認' - '是我想要替換的第一個字符串。我該如何解決這個問題?
cat file | sed '/^--/d'
爲什麼不使用grep -v "^--$" yourfile.txt
?
使用awk
awk '!/^--$/' file
或'awk'$ 0!=「 - 」'file'。 – 2014-04-15 21:55:33
你可以用tr
做的最好的一種方法是刪除留下的空行的連字符。最好的辦法做你想做的是Amro的回答使用sed
。請注意,tr
處理的是字符列表而非多字符字符串,因此在您的參數中放置兩個連字符毫無意義。
$ tr -d "-" textfile
out1
out2
out3
然而,爲了有tr
手柄連字符和其他字符,你必須使用--
終止選項或把連字符的第一個字符之後。比方說,你想擺脫連字符和字母-O的:
$ tr -d "-o" textfile
tr: invalid option -- 'o'
Try `tr --help' for more information.
$ tr -d -- "-o" textfile
ut1
ut2
ut3
$ tr -d "o-" textfile
ut1
ut2
ut3
這是經常使用--
選項終止當角色列表是一個變量如此糟糕的數據不創建不必要的錯誤是一個好主意。對於tr
以外的其他命令也是如此。
tr -d -- $charlist $file
你可以做同樣的事情grep
還有:
cat filename |grep -v "\--"
無用的'貓'。 (不,我不是downvoter)。 – 2014-04-15 13:43:59
不需要貓。 sed'/^-/d'文件 – ghostdog74 2009-10-17 01:25:05
而sed的'd'命令非常不習慣。傑瑞的grep解決方案將會對大多數人更爲熟悉。 – 2009-10-17 03:19:57