2017-05-07 12 views
1

awkを使用してdatファイルからデータを解析しようとしていますが、$0に追加されている改行を取り除くことはできません。私はgsub(/\n/,"")を試しましたが、何もしていません。以下

例:

DATファイルから:

<A>1 
<B>2 

ランニング:

awk ' 
BEGIN {FS = ">"; ORS=""; OFS=""} 
/<A>/ {printf $2; printf$2} 
' file.dat 

は、現在、私に与える:

1 
1 

を私が欲しいとき:

私はあなただけ。これは言われて

awk -F '>' '/<A>/ { print $2 $2 }' file.dat 

をしたい、あなたのコードは、同様に、動作するはずだと思う

11 

答えて

2

。問題は、入力ファイルにDOSスタイルの改行が含まれていたことです。これは、たとえば、dos2unixで削除できます。より多くの方法については、How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in a Bash script?を参照してください。

+0

私はあなたの例のようにFSと構造体を変更しましたが、改行については何もしません。私はまだ同じ結果を得る。 – WillSemple

+0

実際、あなたのコードは私のために働く。あなたはキャリッジリターンでDOSの行末を持っていますか? 'cat -A file.dat'は各行の最後の前に'^M'を含んでいますか? –

+0

...確認済み - これは私のためのものです。 –