プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。

Linuxのコマンドでtrを使うとある文字を削除できると思うのですが、filename.csvというcsvファイルの中の「”」を全部削除したい時に

tr -d \" < filename.csv

とコマンドを打ってもうまくいきませんでした。間違ってますか?

このcsvファイルは" 1 ", " 2 ", みたいにカンマ以外に余計な「"」があって、うまく読み込めないので「"」を消したいのです。

viでtxtとして読み込んで文字の置き換えを使って一括で「"」を消すことはできたのですが、trコマンドで簡単に消せないものかと悩んでいます。

A 回答 (2件)

> tr -d \" < filename.csv


> とコマンドを打ってもうまくいきませんでした。間違ってますか?

標準出力に出すという意味では間違ってませんよね
No.1のかたも書かれているように画面に出力されるはずですが

ファイルに出力したいならリダイレクトすればいいでしょう
http://www.fireproject.jp/feature/bash/basic/red …

#入力を知ってて出力を知らないところが不可解ですが......

出力ファイル名は入力ファイル名とは別にしましょう
数行のスクリプトを書けば同じファイル名で保存することも可能ですが
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

標準出力に出す。確かにディスプレイに「"」が無くなって出てきたような・・・。それなのにあとでそのファイルを見ると「”」が消えてないんですよね。

Linuxの本やネットで調べたので断片的な知識でコマンドを打ったのです。

ファイルに出力したい時はリダイレクトすればいいのですね。

では、

tr -d \" < filename.csv > filename2.csv

とすればいいということかもしれないですね。このコマンドは合ってるんだろうか・・・。

お礼日時:2009/10/10 20:01

>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の「内容が"抜きに更新」されることを期待していますか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

はい。この例をお借りすると、test.csvが「"」抜きの新しいtest.csvというファイルになって保存されることを期待してます。

でも、私の例ではあとからfilename.csvを開くと「”」があるままでした・・・。

お礼日時:2009/10/10 19:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!