我只想在第一个单词之后添加“myword”。我想在第一个单词之后插入一个单词
我的文件包括:
2222 'abc xyz bc'
3333 'hz naa jjja llll'
我想使它到:
2222 myword 'abc xyz bc'
3333 myword 'hz naa jjja llll'
如何通过SED/AWK或任何做呢?
我只想在第一个单词之后添加“myword”。我想在第一个单词之后插入一个单词
我的文件包括:
2222 'abc xyz bc'
3333 'hz naa jjja llll'
我想使它到:
2222 myword 'abc xyz bc'
3333 myword 'hz naa jjja llll'
如何通过SED/AWK或任何做呢?
你可以试试下面的sed命令,
$ sed 's/^\(*[^ ]\+\)/\1 myword/' file
2222 myword 'abc xyz bc'
3333 myword 'hz naa jjja llll'
通过AWK,
$ awk '{$1=$1" myword"}1' file
2222 myword 'abc xyz bc'
3333 myword 'hz naa jjja llll'
这可能为你工作(GNU SED):
sed 's/\S\+/& myword/' file
通过更换第一个字本身,一个空间和myword
。
不错,这个工程即使在我的旧忙碌箱 – Jotne 2014-11-07 08:49:58
会试一下bash
while read line; do echo "${line%% *} word ${line#* }"; done < file
能否请您解释一下上面的sed? – 2014-11-07 08:02:11
@艺术家以'^'开头。 '\''(组的开始)' *'行是否以一个或多个空格开始?'[^] \ +'继续所有不是空格的。 (这将捕获第一个单词)'\ 1'使用来自组'1'的数据并添加'myworld'。 'awk'很容易理解和使用,所以如果它不是文本和双空格和制表符前面的空格不存在的问题,请使用它。 –
Jotne
2014-11-07 08:39:11
如果使用'-r',则不需要转义括号。 'sed -r's /(^ * [^] *)/ \ 1myworld /'file' – Jotne 2014-11-07 08:41:51