2016-05-26 6 views
-1

入力ファイルの内容を行ごとにいくつか追加して読み込む簡単なスクリプトがあります。ここに一つの例があります。は、bashを使用して変数を使用するconcat文字列の場合には適切な出力を得ることができません。

入力ファイル:このINPUT.TXT

aaaaaa 
bbbbbb 
cccccc 
dddddd 
eeeeee 

コードの
コンテンツINPUT.TXTファイルを読み込むための

while IFS='' read -r line || [[ -n "$line" ]]; do 
    echo "abc.def.hig.ewe.adg.hea.L_${line}.great" 
    done < "$1" 

私はそれが間違っている場所を正確にはわかりません。私は正しい出力を得ることができません。変数の末尾に.greatを追加すると、出力がシーケンスを台無しにするようです。

+2

出力は何ですか。どのような出力を期待していますか? Bash 3.2.57とBash 4.3を使って、 'abc.def.hig.ewe.adg.hea.L_aaaaaa.great'に似た5行を得ました。 –

+2

WindowsまたはCRLF行末を使用する他のソースのデータファイルですか?それは、私が前に示したものの代わりに '.greatf.hig.ewe.adg.hea.Laaaaaa'のように見えるようにします。そして、あなたが得たアウトプットだけを示していれば、これは簡単に説明できる(または割引可能)でしょう。 –

+0

はい、あなたは正しいです。問題は入力ファイルです。 WindowsからUNIXへのアップロード時に破損しています。どのような間違い。ありがとう。ありがとうございます。 – Feng

答えて

-1

あなたはawkのようなものを使用すると考えましたか?これらのタイプの単純なタスクには非常に適しています。

$ cat input.txt 
aaaa 
bbbb 
cccc 

-

$ awk '{print "prefix_"$0"_suffix"}' input.txt 
prefix_aaaa_suffix 
prefix_bbbb_suffix 
prefix_cccc_suffix 
+0

実際に私の問題はsed -iです。 私は行番号に基づいてファイル内容を置き換えたいと思う。ここでは が一例です。 sed -i "30s | ^。* $ | abc.def.acb.wet.hee.L _ $ {line} .standard |" post_req.xml しかし、出力は常に乱雑ですが、標準は何の理由もなく常に行頭にジャンプします。 – Feng

0

答えにコメントを転送します。

出力は何ですか。どのような出力を期待していますか?私は、Bash 3.2.57とBash 4.3(Mac OS X 10.11.5)を使って、次のような5行を得ました。

abc.def.hig.ewe.adg.hea.L_aaaaaa.great 

WindowsまたはCRLFの行末を使用する他のソースのデータファイルですか?これは、私が前に示したものの代わりに、

.greatf.hig.ewe.adg.hea.L_aaaaaa 

のようになります。そして、あなたが得たアウトプットだけを示していれば、これは簡単に説明できる(または割引可能)でしょう。

はい、あなたは正しいです。問題は入力ファイルです。 WindowsからUnixにアップロードするときに壊れてしまった。

関連する問題