使用sed或awk用第一个单词替换空格

时间:2015-10-23 13:52:33

标签: replace awk sed

我有一个这样的字符串:

qqqqq zzzz aaaa ttttt 77777

我需要用第一个单词替换空格。结果它应该是这样的:

qqqqqzzzzqqqqqaaaaqqqqqtttttqqqqq77777

是否可以使用sed或awk执行此操作?

2 个答案:

答案 0 :(得分:2)

这个awk单行将用第一个字段替换所有空格。

awk '{OFS=$1;$1=$1}7' file

将生成:

qqqqqqqqqqzzzzqqqqqaaaaqqqqqtttttqqqqq77777

更新

此行将跳过第一个空格:

awk '{x=$1;sub(FS,"\x98");gsub(FS,x);sub("\x98","")}7' file

答案 1 :(得分:1)

这可能适合你(GNU sed):

sed -r ':a;s/^((\S+)\s+\S+)\s+/\1\2/;ta;s/\s+//' file

这将第二个单词后面的第一个空格替换为第一个单词,然后删除第一个空格。

可能写得:

sed -r ':a;s/^((\S+) \S+) /\1\2/;ta;s/ //' file