2014-11-07 118 views

回答

1

你可以试试下面的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' 
+0

能否请您解释一下上面的sed? – 2014-11-07 08:02:11

+0

@艺术家以'^'开头。 '\''(组的开始)' *'行是否以一个或多个空格开始?'[^] \ +'继续所有不是空格的。 (这将捕获第一个单词)'\ 1'使用来自组'1'的数据并添加'myworld'。 'awk'很容易理解和使用,所以如果它不是文本和双空格和制表符前面的空格不存在的问题,请使用它。 – Jotne 2014-11-07 08:39:11

+0

如果使用'-r',则不需要转义括号。 'sed -r's /(^ * [^] *)/ \ 1myworld /'file' – Jotne 2014-11-07 08:41:51

1

这可能为你工作(GNU SED):

sed 's/\S\+/& myword/' file 

通过更换第一个字本身,一个空间和myword

+0

不错,这个工程即使在我的旧忙碌箱 – Jotne 2014-11-07 08:49:58

0

会试一下bash

while read line; do echo "${line%% *} word ${line#* }"; done < file 
相关问题