从文本文件中的列中删除子字符串

时间:2013-09-23 06:04:15

标签: shell sed awk

我有一个shell脚本:

a ab.mi
3 jm.mi
56 uh.mi

我想从第二列删除.mi并将其设为:

a ab
3 jm
56 uh

如何使用shell脚本执行此操作?

3 个答案:

答案 0 :(得分:2)

使用awk

awk 'gsub("\.mi", "", $2)1' inputfile

这将从第二列中删除.mi

答案 1 :(得分:1)

如果你真的只想删除字符串.mi,那么简单的sed替换就可以了:

$ sed 's/[.]mi//' file
a ab
3 jm
56 uh

如果你真的想限制在第二列awk是更好的选择,但你可以选择sed

$ sed -r 's/(\S+\s+\S+)[.]mi/\1/' file
a ab
3 jm
56 uh

答案 2 :(得分:1)

Perl One-Liner:

perl -pe -i.bak 's/\.mi$//i' file