我想在空格分隔的文件的字段1中添加一个单词,例如
我的文件,包含两个字段:
apple:fruit:tree
orange:fruit:tree
mango:fruit:tree
brinjal:vegetable:plant
potato:vegetable:root
现在我想在字段1中添加以空格分隔的单词“family”。
因此,生成的文件应该看起来像这样
apple family:fruit:tree
orange family:fruit:tree
mango family:fruit:tree
brinjal family:vegetable:plant
potato family:vegetable:root
对此的任何想法都将不胜感激。
谢谢,
答案 0 :(得分:2)
使用可以sed:
sed 's/:/ family:/' yourfile.txt
这会将:
替换为family:
,从而达到预期的效果。您可能必须调整正则表达式,以防:
也出现在文本的其他位置。
更新:我不确定你想要什么我想在“空格分隔的文件的字段1中添加”活动“字样,因为你没有给出任何例子为此。
更新2:
它只会替换:
的第一次出现。但是,如果要替换中间的内容,则只需在分隔符之前捕获数据:
sed 's/^\(.*:.*\):/\1 family:/' test.txt
此示例在第三个字段之前添加family
。 \(.*:.*\)
捕获第一个:
之前和之后的字符(即第一个和第二个字段的值)。以下:
将替换为此字符(\1
指的是第一个捕获组),后跟family:
。该线的其余部分保持不变。
答案 1 :(得分:2)
使用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。下次尝试自己动手。