我想要在文件的字段1中添加一个用空格分隔的单词,例如
我的文件,包含两个字段:
apple:fruit:tree
orange:fruit:tree
mango:fruit:tree
brinjal:vegetable:plant
potato:vegetable:root现在我想将用空格分隔的单词"family“添加到字段1中。
因此,生成的文件应该如下所示
apple family:fruit:tree
orange family:fruit:tree
mango family:fruit:tree
brinjal family:vegetable:plant
potato family:vegetable:root任何关于这方面的想法都将不胜感激。
谢谢,
发布于 2010-09-30 15:26:01
使用can sed:
sed 's/:/ family:/' yourfile.txt这将用实现预期结果的family:替换任何:。但是,您可能需要调整正则表达式,以防:也出现在文本中的其他位置。
更新:我不确定你想要什么,我想在一个用空格分隔的文件的字段1中添加一个单词"active“,因为你没有给出任何例子。
更新2:
它只会替换第一次出现的:。但是,如果您想要替换中间的内容,您只需捕获分隔符之前的数据:
sed 's/^\(.*:.*\):/\1 family:/' test.txt此示例在第三个字段之前添加family。\(.*:.*\)捕获第一个:之前和之后的字符(即第一个和第二个字段的值)。下面的:将替换为后面跟着family:的字符(\1指的是第一个捕获组)。这条线的其余部分保持不变。
发布于 2010-09-30 15:42:22
使用awk
$ awk -F":" '{$1=$1" family"}1' OFS=":" file
apple family:fruit:tree
orange family:fruit:tree
mango family:fruit:tree
brinjal family:vegetable:plant
potato family:vegetable:root如果您想添加到第二个字段,只需执行$2=$2" family"。它比创建正则表达式更容易,比如使用sed。
现在,我可以将您重定向到awk manual来了解awk。下次试着自己做吧。
https://stackoverflow.com/questions/3828564
复制相似问题