web-dev-qa-db-ja.com

Linuxテキストのすべての特殊文字を削除する方法

vim pic 画像に青色で表示されている特殊文字を削除する方法 1 like:^ M、^ A、^ @、^ [。私の理解では、^ MはWindowsの改行文字です。sed -i '/^M//g'を削除しますが、他を削除することはできません。コマンド dos2unixも機能しません。両方を削除するために使用できる方法はありますか?

11
vinllen

sedを使用して、印刷可能文字(文字クラス[:print:])を除くすべてを削除します。

sed $'s/[^[:print:]\t]//g' file.txt

[:print:]に含まれるもの:

  • [:alnum:](英数字)
  • [:punct:](句読点)
  • space

ANSI Cのクォート($'')は、\t$''bashなど)内のリテラルタブとして解釈するために使用されます。

15
heemayl

コマンドがSedの限られたスコープで機能することを確認するには、 "C"(POSIX)文字分類 の使用を強制して、非ASCII文字での予期しない動作を回避します。

LC_ALL=C sed 's/[^[:blank:][:print:]]//g' file.txt
7
NeronLeVelu

Linuxコマンドプロンプトで以下のコマンドを実行してみてください

オプション-1:(dos2unixコマンドがLinuxマシンにインストールされている場合)

dos2unix sample_file.txt

オプション-2:

cat sample_file.txt | tr -d '\015' > new_sample_file.txt
2
Anamika