次のクエリが役立つ場合はありがとうございます。 Bashスクリプトが必要です。私はこのスクリプト技術に初めて触れました。
どこかに次のファイルがあります。ファイル名がMemberFile.txtであるとしましょう。
#
[ID ] #1
[ADDRE1 ] Address Line #1
[ADDRE2 ] Mumbai City
[ADDRE3 ] India
#
[ID ] #2
[ADDRE1 ] House No 2
[ADDRE3 ] Green Society
[ADDRE4 ] Kolkatta
#
[ID ] #3
[ADDRE1 ] Plot Num 77
[ADDRE2 ] House No # [567]
[ADDRE3 ] greener Apt
#
これらのファイルには何百万ものレコードがあります。各レコードをすばやく繰り返しインポートして保存したいです[ADDRE3 ]
。また、レコードに「society」または「Num」という単語が含まれていることを確認してください(大文字と小文字を区別しない)。その場合、[ID ]
そのレコードのタグ値を取得します。
予想される出力は#2と#3です。
下の1はレコードを表します。
[ID ] #1
[ADDRE1 ] Address Line #1
[ADDRE2 ] Mumbai City
[ADDRE3 ] India
ベストアンサー1
アッ解決策:
awk -v IGNORECASE=1 '/\[ID /{ r=$3; c=3; next }c-- && $0~/society/{ print r }' MemberFile.txt
出力:
#2
#3
IGNORECASE=1
- 大文字と小文字を区別しない比較モードの設定/\[ID /{ r=$3; c=3; next }
-ID
レコード番号の取得#<number>
(3番目のフィールドへ)c-- && $0~/society/
- 次の3つのレコードにsociety
単語が含まれていることを確認してください。