次のような内容のファイルがあります。
Apple
b\all
cat
\34
Egg
バックスラッシュを含むすべての行を削除したい。使ってみた
sed '/\/d' pdataf.txt
しかし、うまくいきませんでした。何を試せばいいですか?
バックスラッシュをエスケープするだけです(エスケープをエスケープしてください!)
$ sed '/\\/d' pdataf.txt
Apple
cat
Egg
grep
、\
を含まないすべての行を印刷:
grep -v '\\' pdataf.txt
同様にawk
:
awk '!/\\/' pdataf.txt
円記号を置き換えるには、円記号(エスケープ文字)をエスケープする必要があります。 sedのバージョンがサポートしている場合、-i(in-place)オプションは、中間ファイルを提供することなくファイルの編集を行います。また、-iオプションを使用する場合、(推奨!)バックアップファイル拡張子を受け入れることに注意してください。ただし、拡張子を指定しない場合は、sedコマンドの前に-eを付けて、使用していないことをsedに通知すると便利ですバックアップファイルの拡張子。
すべてを一緒に入れて:
# Run sed to remove lines with backslash in them
$ sed -i -e '/\\/d' pdataf.txt
# Cat your file to confirm edits
$ cat pdataf.txt
Apple
cat
Egg