我有一个如下所示的文件:
0/1:34:89:09 0/0:985:083:67 0/1:687:90887:975 0/1:54:79:25 0/0:5:83:67 0/1:67:9087:97 0/1:574:779:225 0/0:275:73:627 0/1:67:47:77
我想替换0/0
以 开头的任何列homo
,以便我所需的文件如下所示:
0/1:34:89:09 homo 0/1:687:90887:975 0/1:54:79:25 homo 0/1:67:9087:97 0/1:574:779:225 homo 0/1:67:47:77
答案1
我假设“homo”指的是“相同”,因为在此处理中将平等地应用于所有输入文件,无论扩展名如何。
sed -iBAK 's_\(0/0:[0-9]\+:[0-9]\+:[0-9]\+\)_homo_g' text.txt
使用-iBAK
BAK 后缀对原始文件进行备份。
答案2
使用sed -r 's|0/0[^ $]+|homo|g'
:
$ echo "0/1:34:89:09 0/0:985:083:67 0/1:687:90887:975 0/1:54:79:25 0/0:5:83:67 0/1:67:9087:97 0/1:574:779:225 0/0:275:73:627 0/1:67:47:77 0/0:275:73:628" | \
sed -r 's|0/0[^ $]+|homo|g'
0/1:34:89:09 homo 0/1:687:90887:975 0/1:54:79:25 homo 0/1:67:9087:97 0/1:574:779:225 homo 0/1:67:47:77 homo