3

一部のOracleコマンドで使用するために、改行文字を「、」に置き換える必要がありますが、単一のコマンドで使用します。私はそれを行う方法を理解できません。

入力:

R1
R2
R3
R4

必要な出力:

'R1','R2','R3','R4'
4

5 に答える 5

2

sed を使用:

 sed -n '1h;1!H;${ g; s/\n/,/g; s/\([^,]*\)/'\''\1'\''/gp}' input
于 2012-12-24T05:44:51.427 に答える
2

を使用する 1 つの方法を次に示しsedます。

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

結果:

'R1','R2','R3','R4'
于 2012-12-24T06:00:28.807 に答える
2

BBedit では、検索に次のような grep を使用します。

(R[0-9]+)\r

そして置き換えます:

'\1', 
于 2012-12-24T14:17:12.470 に答える
1

改行を置き換える要件は、サンプル出力と一致しません。改行を に置き換えるには,、 を実行できますがtr \\n ,、これにより、末尾に改行のない末尾のコンマが出力されます。また、それはあなたの入力を引用しません。おそらくあなたは探している:

paste -s -d, input

または、実際にフィールドを引用符で囲みたい場合は、次のようにします。

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

上記では、入力ファイルの名前はinput. 最後のコマンドは次のように書くこともできます:

sed "s/^\|$/'/g" input | paste -s -d,
于 2012-12-24T13:14:20.110 に答える
1

使用tr:

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

引用符が必要な場合は、次のようにパイプできますsed

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

…これでかなり近づきます:

R1','R2','R3','R4','
于 2012-12-24T05:33:38.897 に答える