如何使用Sed命令将字符或表达式替换为换行符?
(对于字符替换,我通常使用tr ';' "\n"
命令。)
答案 0 :(得分:2)
使用Sed代替;
字符(分号)代替换行符:
sed "s/;/\\
/g"
或
sed "s/;/\\$(echo -e '\n')/g"
使用Sed代替[^A-Za-z]
表达式(字母字符以外的任何内容)换行:
sed "s/[^A-Za-z]/\\
/g"
或
sed "s/[^A-Za-z]/\\$(echo -e '\n')/g"
答案 1 :(得分:1)
怎么样:
sed $'s/;/\\\n/g' inputFile
$ cat inputFile
this;is;a;text
$ sed $'s/;/\\\n/g' inputFile
this
is
a
text
答案 2 :(得分:0)
在文字换行符之前的反斜杠是在sed中获取换行符的便携方法:
$ echo "a,b" | sed 's/,/\
/'
a
b
答案 3 :(得分:0)
这可能适合你(GNU sed& Bash):
sed 'y/;/\n/' file
或
sed $'y/;/\\n/' file
或非常令人费解:
sed -e 'G' -e ':a' -e 's/\(;\)\(.*\(.\)\)/\3\2/' -e 'ta' -e 's/.$//' file