awk のみを使用して次のことを実行できるかどうかを知りたい: ファイル F で正規表現を検索しており、その正規表現に一致する文字列 (S1) を別の文字列 (S2) に置き換えたい。もちろん、awk を使えば簡単にできます。しかし...私の問題は、S1をS2にマップする別のファイルからS2の値を取得する必要があることです。
例 :
ファイル F:
abcd 168.0.0.1 qsqsjsdfjsjdf
sdfsdffsd
168.0.0.2 sqqsfjqsfsdf
別のファイルの連想テーブル
168.0.0.1 foo
168.0.0.2 bar
私は手に入れたい:
この結果:
abcd foo qsqsjsdfjsjdf
sdfsdffsd
bar sqqsfjqsfsdf
手伝ってくれてありがとう !
編集: 入力ファイルが次のように少し異なる場合 (IP アドレスの前にスペースはありません):
ファイル F:
abcd168.0.0.1 qsqsjsdfjsjdf
sdfsdffsd
168.0.0.2 sqqsfjqsfsdf
$1、$2 変数を使用して連想配列を検索することはできません。私はそのようなことを試みました(美麗の命題に基づいて)が、うまくいきませんでした:
FNR < NR {
sub(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/, assoc [ & ] );
print
}
連想配列で一致した文字列を検索する方法はありますか (assoc[ & ] は無効のようです)。