複数のtxtファイルがあり、ファイルに「プロバイダ」というテキストが含まれている場合は、ファイルから電子メールを抽出したいと思います。テキストファイルの形式が異なります。 「サプライヤー」はテキストのどこにでも現れます。
以下はいくつかの簡単な例です。
ファイル1.txt
名前:Joe1
プロバイダ
...
電子メール[Eメール保護]
ファイル2.txt
名前:Joe2
...
顧客
...
電子メール[Eメール保護]
ファイル3.txt
名前:Joe3
...電子メール
を提供
[Eメール保護]
このショートコードを使用していますが、すべてのメールが返されます。
$ awk -F, '{
for (i=1; i<=NF; i++)
if ($i ~ /@/)
print $i
}' *
助けてください?
ありがとう
ベストアンサー1
$ awk 'FNR==1 { provider = False }
$0 ~ /Provider/ { provider = True}
$0 ~ /@/ && provider == True {
for (i=1; i<=NF; i++) {
if ($i ~ /@/) print $i;
}
}' *
- 最初の行に
provider
設定された各ファイルについてFalse
- 行に次のものが含まれている場合は、
Provider
プロバイダを次に設定します。True
- 行に含まれていて、
@
その単語が以前に見たことがある場合は、フィールドをProvider
繰り返して単語を含むフィールドを印刷します。@