私が解決しようとしている問題を解決するのに役立つ人がいますか?現在、2つのファイルで作業しています。ファイルの内容は、値が次の2つの列で構成されるリストにあります。
ファイル_A.txt:
1 MSFT
2 YHOO
3 GOOG
4 APPL
5 SUN
ファイル_B.txt:
### Client A ###
1
2
3
### Client B ###
2
3
4
5
++++
私は代替方法を使用して1が発生するたびにファイルBの値をMFSTに変更しようとしています。ファイルBに2が表示されるたびに、値をYHOOに、3をGOOGに変更します。
現在私ができる唯一の方法は、対話型sedを使用して受動的で長いプロセスを利用することです。使用できる繰り返し構文はありますか?
sed -i 's/\1\>/MSFT/g' FILE_B.txt
非常にありがとう
ベストアンサー1
そうですか?
awk 'NR==FNR{a[$1]=$2} NR!=FNR{if($1 in a){$1=a[$1]};print}' File_A.txt FILE_B.txt
### Client A ###
MSFT
YHOO
GOOG
### Client B ###
YHOO
GOOG
APPL
SUN
これがうまくいく場合は、出力をtmpファイルにリダイレクトしてから、FILE_B.txtを介してtmpファイルをmvします。sponge
インストールされている場合は、次のことができます。
awk 'NR==FNR{a[$1]=$2} NR!=FNR{if($1 in a){$1=a[$1]};print}' File_A.txt FILE_B.txt | sponge FILE_B.txt