想象我有这样的输出:
$ awk '{print $1,$5}'
sample. sample1.
test. test1.
理想的输出应该是:
sample sample1
test test1
所以我想删除每列末尾的.
。
请注意,这两列是第1列和第5列。
答案 0 :(得分:3)
如果你正在处理awk中的任何角色和FS=" "
,我会选择sed:
sed -e 's/. / /' -e 's/.$//'
这将删除空格或行尾之前的任何最后一个字符。注意.
代表任何字符,而不仅仅是点。
$ cat a
h.e. llo i. am here. and there
one two three four five six
$ awk '{print $1, $5}' a | sed -e 's/. / /' -e 's/.$//'
h.e here
on fiv
答案 1 :(得分:2)
你可以这样做:
awk '{gsub(/\./,"");print $1,$5}' file
但是如果您发布输入文件,它可能是水獭,更好的方法。
更准确地说是remove . at the end of each column
awk '{sub(/\.$/,"",$1);sub(/\.$/,"",$5);print $1,$5}' file