2

私はすぐにこれをレイアウトします。入力 test.bat ファイルは次のようになります。

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame001.txt

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame002.txt

...

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame405.txt

私が最後に欲しいのは:

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame001.txt AIRtrac_data_frame001.tst

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame002.txt AIRtrac_data_frame001.tst

...

awk '{ gsub("\r", "\n"); print $0;}' AIRtrac_data_frame405.txt AIRtrac_data_frame001.tst

この awk コマンドは、ファイルを取り込み、元のファイルを適切に出力し、追加するファイル名を保存します。

コマンド:

 awk '{temp = $7} {printf("%s\n", $0)}' mactounix_convert_line_return.bat

出力:

**awk '{temp = $7} {printf("%s\n", $0)}' mactounix_convert_line_return.bat**

問題は、キャプチャした文字列を行末に追加しようとしたときです

コマンド:

awk '{temp = $7} {printf "%s %s\n", $0, temp}' mactounix_convert_line_return.bat

出力:

**AIRtrac_data_frame405.txtrint $0;}' AIRtrac_data_frame405.txt**

キャプチャされたテキスト ($7) が元の文字列を上書きしているようです。

どんな助けでも大歓迎です。

4

2 に答える 2

0

最後のレコード ($NF) のファイル拡張子を "tst" に置き換えて、元のテキストに追加する必要がありますか?

awk '{printf $0; gsub(/[^\.]+$/, "tst"); print "",$NF;}' data.txt

$NF を変更すると $0 も変更されるため、最初に printf を実行します。

print "",$NF は、元のテキストと新しいファイル名を分離することです。

于 2013-05-22T05:26:41.270 に答える