ペアのライン抽出

ペアのライン抽出

このようなtxtファイルがあります。行の合計email-passwordペアがありますemail-hash

EMAIL:[email protected]
PASSWORD:pass1
EMAIL:[email protected]
PASSWORD:pass2
EMAIL:[email protected]
PASSWORD:pass3
EMAIL:[email protected]
HASH:qwerty123
EMAIL:[email protected]
HASH:somehash
EMAIL:[email protected]
PASSWORD:pass6

email-password行が含まれていない行のみを抽出してみましたemail-hash。私の場合、コマンドは正しく機能しませんでした。sed -e 's/.*EMAIL://' -e 's/.*PASSWORD://' -e "/\b\HASH\b/d" test.txt

予想出力:

[email protected]
pass1
[email protected]
pass2
[email protected]
pass3
[email protected]
pass6

ベストアンサー1

sed -n 'N;s/^EMAIL://;s/PASSWORD://p' file
  • Nパターン空間に次の行を追加し、
  • s/^EMAIL://他のものに置き換える必要はありませんEMAIL:
  • s/PASSWORD://p何も交換できPASSWORD:ません。交換が成功した場合のみ印刷

サンプル入力をテストします。仮定: 最初の行はEMAIL:、 2 番目の行は、PASSWORD:またはHASH:、その後繰り返します。


ボーナスとして空白行がある可能性がある場合は、awkを使用することをお勧めします。

awk -F ':' '/^PASSWORD:/{print line;print $2}/^EMAIL:/{line=$2}' file

おすすめ記事