我想修改我的制表符分隔文件,如下所示。
a001.2[tab]xxx[tab]001[tab]zz
bbb[tab]ddd[tab]293[tab]kkjk
c054.9[tab]ccc[tab]786[tab]qq
a001[tab]xxx[tab]001[tab]zz
bbb[tab]ddd[tab]293[tab]kkjk
c054[tab]ccc[tab]786[tab]qq
我想仅使用bash脚本删除第一列的十进制(例如a001.2到a001)
请告诉我该怎么办。
提前谢谢。
答案 0 :(得分:2)
使用sed
:
sed -E 's/^([^\t]+)\.[^\t]+(.*)/\1\2/' file.txt
如果文件不大,您可以使用bash
while
循环参数扩展:
while IFS=$'\t' read i j; do echo "${i%%.*}"$'\t'"$j"; done <file.txt
示例:强>
$ cat file.txt
a001.2 xxx 001 zz
bbb ddd 293 kkjk
c054.9 ccc 786 qq
$ sed -E 's/^([^\t]+)\.[^\t]+(.*)/\1\2/' file.txt
a001 xxx 001 zz
bbb ddd 293 kkjk
c054 ccc 786 qq
$ while IFS=$'\t' read i j; do echo "${i%%.*}"$'\t'"$j"; done <file.txt
a001 xxx 001 zz
bbb ddd 293 kkjk
c054 ccc 786 qq