• ベストアンサー

NULLの置き換えについて

はじめまして。 linux初心者です。 ファイルの中のNULL文字(\N)を "" に置き換えたいのですが、どうすればよいのでしょうか? sedコマンドを利用すれば、できそうなのですが、NULLと””をどのように記述すればよいのか わかりません。 crontab で 定期的に流したいので コマンド がいいのですが、他のやり方でも構いません。 宜しくお願いします。

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

  • ベストアンサー
回答No.3

つまりテキストファイル中にある「\N」という2文字からなる文字列を削除したいということですね。 そうであれば、 sed -e 's/\\N//g' in.txt > out.txt または perl -pe 's/\\N//g' in.txt > out.txt でどうでしょうか?

isshono
質問者

お礼

ありがとうございました。 うまくいきました!

その他の回答 (2)

回答No.2

#1です。 ちょっと間違えました。訂正します("<"抜け) tr -d "\000" < NULL_include_text.txt > output.txt tr -d "\n" < NL_include_text.txt > output.txt tr -d "\r\n" < CRNL_include_text.txt > output.txt

isshono
質問者

補足

shuyamakawa さん、ありがとうございます。 tr -d "\N" < NL_include_text.txt > output.txt とコマンドしたところ、N は消えたのですが \(バックスラッシュ) だけ残った状態でファイルが作成されました。 \N を削除したいのですが、どうすればよいでしょうか?

回答No.1

> ファイルの中のNULL文字(\N)を "" に置き換えたいのですが、どうすればよいのでしょうか? 「NULL文字」とは、文字コードが0である文字(「\0」)のことですか? それとも改行文字(「\n」)のことですか? どちらにしろ指定した文字を消すのに、trコマンドを使用してみたらいかがでしょうか? tr -d "\000" NULL_include_text.txt > output.txt tr -d "\n" NL_include_text.txt > output.txt tr -d "\r\n" CRNL_include_text.txt > output.txt

関連するQ&A