我有一个这样的字符串:
qqqqq zzzz aaaa ttttt 77777
我需要用第一个单词替换空格。结果它应该是这样的:
qqqqqzzzzqqqqqaaaaqqqqqtttttqqqqq77777
是否可以使用sed或awk执行此操作?
答案 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