2017-10-06 23 views
0

私は、セミコロンで区切られたテキストファイルを、おそらくヘッダーを含む複数の行で持っています。テキストファイルの各列に二重引用符を追加する必要があります。私は個々の作品をsedを使って動かそうとしました。しかし、それらを組み合わせると実行されません。テキストファイルに二重引用符を追加する

マイコマンド:

  1. sed "s/;/\";"\/g a.txt - (の列を置き換える ";"(例:D; "B"; "C"; "F)

  2. sed "s/^/\"/"g a.txt - ( - ダブル置き換えます最初の列の前後に引用符)

  3. sed "s/$/\"/"g a.txt - (最後の列を二重引用符を置き換える)

私は以下のようにそれらを結合:

sed "s/;/\";"\/g";s/^/\"/g";s/$/\"/ g" a.txt 

これは実行されません。私は上記の2つのsedステートメントだけを組み合わせて実行できますが、すべてではありません。

+1

[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください。 – Cyrus

答えて

0

特定の目的のために二重引用符を絶対に必要としない限り、スクリプト(および変数)を一重引用符で囲みます。シェルが変数を展開できるようにします。だからあなたのスクリプトは、(クリーンアップいくつかの他のものと)次のようになります。

sed 's/;/";"/g' a.txt - (replace columns with ";" (ex:d;"b";"c";"f) 

sed 's/^/"/' a.txt - (– replace double quotes around first column) 

sed 's/$/"/' a.txt - (replace double quotes around last column) 

と組み合わせる:

にいくつかのSEDS(のEREをサポートするもの)にビットを削減することができる
sed 's/;/";"/g; s/^/"/; s/$/"/' a.txt 

sed 's/;/";"/g; s/^\|$/"/g' a.txt 
0

あなたはそれを試すことができます。

sed '2,$s/\([^;]*\)/\"\1"/g' 

ヘッダーを保持するために2行目から開始します。

関連する問題