2017-04-21 53 views
0

我想用awk刪除某些行開頭的字符。我想刪除的字符是@和/或=使用awk刪除某行開頭的某些字符

下面是一個文件的例子:

@word <= Remove @ 
=word <= Remove = 
@=word <= Remove @ AND = 
[email protected] <= Remove = AND @ 

目前,我用sub(/^\@/, "", $0)在一行的開頭刪除@。我如何編輯這一行,以便刪除@=以及兩者是否一起存在?

回答

1

在awk中:

$ awk 'gsub(/^[[email protected]]+/,"")||1' file 
word <= Remove @ 
word <= Remove = 
word <= Remove @ AND = 
word <= Remove = AND @ 

解釋:

awk ' 
gsub(/^[[email protected]]+/,"") || 1 # replace all leading =s and @s with "" and print nevertheless 
' file 
2

隨着awk

awk '{sub(/^[@=]+/, "")}1' File 

隨着sed

sed -r 's/^[@=]+//' File