2

コマンドを使用して、シェルスクリプトで改行文字(\ n)を','(一重引用符の開始と終了とともに)に置き換えたい。trしかし、trコマンドは文字を正しく置き換えていません

これが私が使用したコマンドです:

< 1.txt tr "\n" "','" 

このコマンドの出力:

erer'erer.'erer'erer'

ファイル 1.txt は次のようになります。

erer
erer.
erer
erer

同じコマンドを使用してこれを行う方法を教えてください。

質問が編集されました

4

2 に答える 2

3

tr は char から文字列への変換ではなく、char ごとの変換を行うため、これには適切なツールではありません。awk を使用します。

awk '{printf("'"'"'%s'"'"',", $0)} END{print ""}' 1.txt

奇妙な二重引用符/一重引用符をすべて回避するには、次を使用します。

awk '{printf("\x27%s\x27,", $0)} END{print ""}' 1.txt

最後の行の後にコンマを出力しないようにするには:

awk '{a[cnt++]=$0} END{ for (i=0; i<length(a)-1; i++) printf("\x27%s\x27,", a[i]); 
      print a[i]}' 1.txt
于 2013-06-26T10:57:17.647 に答える