我有一个sed命令,如下所示:
return
myfile是这样的:
sed -i 's/),(/),\n(/g' myfile
预期结果是:
(237),(238)
实际结果是:
(237),
(238)
我尝试了许多写新行的方法,但是都失败了。有可能获得预期的结果吗?
我发现(237),n(238)
有效,而GNU sed
无效。
答案 0 :(得分:0)
对于BSD sed
,我们可以将新行写为$'\n'
,因此命令应为:
/usr/bin/sed 's/),(/),\'$'\n''(/g' myfile
答案 1 :(得分:0)
这可能对您有用:
sed -e 'G' -e 's/,\(.*\)\(.\)/,\2\1/' file
G
命令会将保留空间添加到模式空间,实际上,由于保留空间为空,因此将添加换行符。模式匹配可以将其重新排列为所需的结果。