ファイル1.txt
112|9305|/inst.exe
112|9305|/lkj.exe
112|9305|/dje.jar
112|9305|/ind.pdf
112|9306|/ma.exe
112|9306|/ngg.pdf
112|9307|/jhhh.dat
112|9312|/ee.dat
112|9312|/qwq.dll
ファイル2.txt
117|9305|www.gahan.com
117|9306|www.google.com
117|9312|www.mihan.com
117|9307|translate.com
私は出力が欲しい:
112|9305|www.gahan.com/inst.exe
112|9305|www.gahan.com/lkj.exe
112|9305|www.gahan.com/dje.jar
112|9305|www.gahan.com/ind.pdf
112|9306|www.google.com/ma.exe
112|9306|www.google.com/ngg.pdf
112|9307|translate.com/jhhh.dat
112|9312|www.mihan.com/ee.dat
112|9312|www.mihan.com/qwq.dll
file2.txt
2番目の列の値に基づいて3番目の列に3番目の列を追加したいと思います。file1.txt
実は2列目を基準に結合したいのですが、それらの間に一対一の対応はありません。。awk
またはを使用してシェルスクリプトでこれを行うにはどうすればよいですかgrep
?sed
助けてください。
答え1
その操作は一人で完了できます。アッ:
awk -F'|' 'FNR==NR{host[$2]=$3;next}{$3=host[$2] $3}1' OFS='|' file2 file1
答え2
awk
これを行い、sed
一緒に作業する方法は次のとおりです。
awk -F'|' '{print "s/"$2"|""/"$2"|"$3"/"}' file2.txt | sed -f /dev/stdin file1.txt