在记事本或BBEdit中或使用Unix命令'tr'替换换行符?

5q4ezhmt  于 2022-12-26  发布在  Unix
关注(0)|答案(5)|浏览(269)

我不得不用","替换换行符,以便在某个oracle命令中使用,但在单个命令中使用。我不知道该怎么做。
输入:

R1
R2
R3
R4

要求输出:

'R1','R2','R3','R4'
c7rzv4ha

c7rzv4ha1#

在BBedit中,您可以使用如下grep来查找:

(R[0-9]+)\r

并替换:

'\1',
shyt4zoc

shyt4zoc2#

使用tr

cat data.txt | tr '\n' ','

如果需要引号,可以通过管道传输到sed

cat data.txt | tr '\n' ',' | sed "s/,/','/g"

......这让你非常接近:

R1','R2','R3','R4','
rekjcdws

rekjcdws3#

使用sed:

sed -n '1h;1!H;${ g; s/\n/,/g; s/\([^,]*\)/'\''\1'\''/gp}' input
svujldwt

svujldwt4#

下面是使用sed的一种方法:

sed ":a;N;\$!ba;s/\n/','/g;s/^\|$/'/g" file

结果:

'R1','R2','R3','R4'
mm9b1k5b

mm9b1k5b5#

替换换行符的要求与您的示例输出不匹配。要用,替换换行符,您可以执行tr \\n ,,但这会给您的输出提供一个没有尾随换行符的尾随逗号。此外,它不会引用您的输入。也许您正在寻找:

paste -s -d, input

或者,如果您确实希望字段被引用:

< input sed "s/^\|$/'/g" | paste -s -d,

在上面的例子中,输入文件名为input,最后一个命令也可以写成:

sed "s/^\|$/'/g" input | paste -s -d,

相关问题