我必须用','替换换行符,以便在一些oracle命令中使用,但只能在一个命令中使用。我无法弄明白该怎么做。
输入:
R1
R2
R3
R4
必需输出:
'R1','R2','R3','R4'
答案 0 :(得分:2)
使用sed:
sed -n '1h;1!H;${ g; s/\n/,/g; s/\([^,]*\)/'\''\1'\''/gp}' input
答案 1 :(得分:2)
这是使用sed
的一种方式:
sed ":a;N;\$!ba;s/\n/','/g;s/^\|$/'/g" file
结果:
'R1','R2','R3','R4'
答案 2 :(得分:2)
在BBedit中,你可以使用像这样的grep来查找:
(R[0-9]+)\r
并替换:
'\1',
答案 3 :(得分:1)
使用tr
:
cat data.txt | tr '\n' ','
如果您需要引号,可以输入sed
:
cat data.txt | tr '\n' ',' | sed "s/,/','/g"
...让你非常接近:
R1','R2','R3','R4','
答案 4 :(得分:1)
替换换行符的要求与您的示例输出不匹配。要使用,
替换换行符,您可以执行tr \\n ,
,但这会为您提供带有尾随换行符的尾随逗号的输出。此外,它不会引用您的输入。也许您正在寻找:
paste -s -d, input
或者,如果您确实希望引用字段:
< input sed "s/^\|$/'/g" | paste -s -d,
在上面,您的输入文件名为input
。最后的命令也可以写成:
sed "s/^\|$/'/g" input | paste -s -d,