私はシェルスクリプトが初めてです。 Windowsで作成され、キャリッジリターンを持つファイルをソースコードとして使用しています。 source
コマンド。私がそれにいくつかの文字を追加するときに私が調べた後、それは常に行の先頭に来る。
test.dat
(末尾にキャリッジリターンがあります):
testVar=value123
testScript.sh
(ファイル上の情報源):
source test.dat
echo $testVar got it
私が得る出力は
got it23
どうすれば "r"
変数から?
回答:
回答№1の場合は35さらに別の解決策は tr
:
echo $testVar | tr -d "r"
cat myscript | tr -d "r"
オプション -d
を意味する delete
.
回答№2の11
次のようにsedを使うことができます。
MY_NEW_VAR=$(echo $testVar | sed -e "s/r//g")
echo ${MY_NEW_VAR} got it
ところで、やってみてください dos2unix
データファイルに。
回答№3のための5
スクリプトファイルをLinux / Unixにコピーしてからこのコマンドを使用してください
perl -pi -e "s/r//" scriptfilename
答え№4の2
にパイプ sed -e "s/[rn]//g"
両方のキャリッジリターンを削除する(r
)とラインフィード(n
各テキスト行から)。
回答№5の場合は0
外部プログラムを呼び出さずに純粋なシェルソリューションを作成する場合
NL=$"n" # define a variable to reference "newline"
testVar=${testVar%$NL} # removes trailing "NL" from string
答え№6の場合は0
これにより、からのすべてのキャリッジリターンが削除されます。 $testVar
を使用して シェルパラメータ拡張 そして ANSI-Cクォーティング (Bashが必要です):
testVar=${testVar//$"r"}