2つのファイルがあります。両方のファイルの内容は動的であり、必要に応じてシステムによって生成されます。
最初のファイルには、次の意味を持つ特定の行番号が含まれています。
head simdb.txt
MSISDN
Account_ID
COSP_ID
Currency
Language
Home_Zone
SIM_PIN
Screening_PIN
Third_ParAnothercess_PIN
Cumulative_Incorrect_PIN
他のファイルには、次の動的データが含まれています。
head subscriber.txt
0='917598936722' 4='ENG' 6='1234'
出力は次のようになります。
0='917598936722' //MSISDN
4='ENG' //Language
6='1234' //SIM_PIN
質問が更新されました========
上記のクエリに加えて、subscriber.txtに複数の行がある場合、スクリプトが最初に行を印刷してから目的の出力を印刷するにはどうすればよいですか?たとえば、次の subscriber.txt ファイルがある場合
head subscriber.txt
0='917598936722' 4='ENG' 6='1234'
0='919654680634' 4='ENG' 6='1234'
その後、希望の出力は次のようになります。
0='917598936722' 4='ENG' 6='1234'
0='917598936722' //MSISDN
4='ENG' //Language
6='1234' //SIM_PIN
===========================================
0='919654680634' 4='ENG' 6='1234'
0='919654680634' //MSISDN
4='ENG' //Language
6='1234' //SIM_PIN
ベストアンサー1
awk 'NR==FNR
{Arr[NR-1]=$0;
next}
{for(i=1;i<=NF;i++)
{split($i,a,"=");
print $i " //"Arr[a[1]]}
}'simdb.txt subscriber.txt
- simdb.txtのすべての行を読み取り、配列に保存します。インデックスは0から始まります
- 2番目のファイルを読み、等号の前の値が何であるかを確認してください。
- Arrから値を読み取り、印刷します。