3

dos2unixコマンドを変数で実行する必要があります。ファイルを使用するだけですdos2unix myfile.txt。変数でそれを行うにはどうすればよいですか?例えば:

variable="bla\r"
dos2unix $variable

他のコマンドを使用した提案も大歓迎です。

PS .: テキストを読んでいるファイルに対して dos2unix を実行できません。

4

3 に答える 3

3

ここでは、外部コマンドは必要ありません。パラメータ展開を使用CRして、シェル自体に組み込まれた機能のみを使用して s を削除できます。したがって、(かなり短い文字列を使用して) 実行が高速になり、bash (または ksh93 や zsh などの同様に拡張されたシェル) を備えたシステムで動作することが保証されます。 )、dos2unix がインストールされていなくても:

$ PS1='> ' # for readability, to distinguish output starting with '$' literals
> variable_in=$'bla\r'
> variable_out=${variable_in//$'\r'/}
> printf '%q\n' "$variable_in"
$'bla\r'
> printf '%q\n' "$variable_out"
bla
于 2015-11-03T18:41:34.470 に答える
2

次のように使用できますtr

echo "$variable"| tr -d '\r'

また

tr -d '\r' <<< "$variable"
于 2015-11-03T18:40:09.087 に答える
2

dos2unix は標準入力から読み取ることができるので、 と書くことができますecho "$variable" | dos2unix。これを試して:

$ variable=$'bla\r'

$ echo "$variable" | cat -A
bla^M$

$ echo "$variable" | dos2unix | cat -A
bla$
于 2015-11-03T18:41:03.703 に答える