一部のOracleコマンドで使用するために、改行文字を「、」に置き換える必要がありますが、単一のコマンドで使用します。私はそれを行う方法を理解できません。
入力:
R1
R2
R3
R4
必要な出力:
'R1','R2','R3','R4'
sed を使用:
sed -n '1h;1!H;${ g; s/\n/,/g; s/\([^,]*\)/'\''\1'\''/gp}' input
を使用する 1 つの方法を次に示しsed
ます。
sed ":a;N;\$!ba;s/\n/','/g;s/^\|$/'/g" file
結果:
'R1','R2','R3','R4'
BBedit では、検索に次のような grep を使用します。
(R[0-9]+)\r
そして置き換えます:
'\1',
改行を置き換える要件は、サンプル出力と一致しません。改行を に置き換えるには,
、 を実行できますがtr \\n ,
、これにより、末尾に改行のない末尾のコンマが出力されます。また、それはあなたの入力を引用しません。おそらくあなたは探している:
paste -s -d, input
または、実際にフィールドを引用符で囲みたい場合は、次のようにします。
< input sed "s/^\|$/'/g" | paste -s -d,
上記では、入力ファイルの名前はinput
. 最後のコマンドは次のように書くこともできます:
sed "s/^\|$/'/g" input | paste -s -d,
使用tr
:
cat data.txt | tr '\n' ','
引用符が必要な場合は、次のようにパイプできますsed
。
cat data.txt | tr '\n' ',' | sed "s/,/','/g"
…これでかなり近づきます:
R1','R2','R3','R4','