• ベストアンサー

tr -d \" < filename.csv は間違いですか?

こんにちは。 Linuxのコマンドでtrを使うとある文字を削除できると思うのですが、filename.csvというcsvファイルの中の「”」を全部削除したい時に tr -d \" < filename.csv とコマンドを打ってもうまくいきませんでした。間違ってますか? このcsvファイルは" 1 ", " 2 ", みたいにカンマ以外に余計な「"」があって、うまく読み込めないので「"」を消したいのです。 viでtxtとして読み込んで文字の置き換えを使って一括で「"」を消すことはできたのですが、trコマンドで簡単に消せないものかと悩んでいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

> tr -d \" < filename.csv > とコマンドを打ってもうまくいきませんでした。間違ってますか? 標準出力に出すという意味では間違ってませんよね No.1のかたも書かれているように画面に出力されるはずですが ファイルに出力したいならリダイレクトすればいいでしょう http://www.fireproject.jp/feature/bash/basic/redirect-pipe.html#0 #入力を知ってて出力を知らないところが不可解ですが...... 出力ファイル名は入力ファイル名とは別にしましょう 数行のスクリプトを書けば同じファイル名で保存することも可能ですが

rabitwo
質問者

お礼

ご回答ありがとうございます。 標準出力に出す。確かにディスプレイに「"」が無くなって出てきたような・・・。それなのにあとでそのファイルを見ると「”」が消えてないんですよね。 Linuxの本やネットで調べたので断片的な知識でコマンドを打ったのです。 ファイルに出力したい時はリダイレクトすればいいのですね。 では、 tr -d \" < filename.csv > filename2.csv とすればいいということかもしれないですね。このコマンドは合ってるんだろうか・・・。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>tr -d \" < filename.csv >とコマンドを打ってもうまくいきませんでした。間違ってますか? どううまくいきませんか? user@localhost:~$ cat test.csv "1","2" 3,4 user@localhost:~$ tr -d \" < test.csv 1,2 3,4 正しく動作していますが。 上記でtest.csvの「内容が"抜きに更新」されることを期待していますか?

rabitwo
質問者

お礼

ご回答ありがとうございます。 はい。この例をお借りすると、test.csvが「"」抜きの新しいtest.csvというファイルになって保存されることを期待してます。 でも、私の例ではあとからfilename.csvを開くと「”」があるままでした・・・。

すると、全ての回答が全文表示されます。

関連するQ&A