- ベストアンサー
NULLの置き換えについて
はじめまして。 linux初心者です。 ファイルの中のNULL文字(\N)を "" に置き換えたいのですが、どうすればよいのでしょうか? sedコマンドを利用すれば、できそうなのですが、NULLと””をどのように記述すればよいのか わかりません。 crontab で 定期的に流したいので コマンド がいいのですが、他のやり方でも構いません。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
つまりテキストファイル中にある「\N」という2文字からなる文字列を削除したいということですね。 そうであれば、 sed -e 's/\\N//g' in.txt > out.txt または perl -pe 's/\\N//g' in.txt > out.txt でどうでしょうか?
その他の回答 (2)
- shuyamakawa
- ベストアンサー率67% (111/164)
#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
補足
shuyamakawa さん、ありがとうございます。 tr -d "\N" < NL_include_text.txt > output.txt とコマンドしたところ、N は消えたのですが \(バックスラッシュ) だけ残った状態でファイルが作成されました。 \N を削除したいのですが、どうすればよいでしょうか?
- shuyamakawa
- ベストアンサー率67% (111/164)
> ファイルの中の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
お礼
ありがとうございました。 うまくいきました!