このような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