sed
一致後に2番目の行(または任意の数字)を削除し、一致とその間の行を除外するにはどうすればよいですか?
たとえば、
Enter command below
> login
Command valid
Enter your password at the below prompt
Remember to make sure no-one is looking at your screen
> mysecretword
Password accepted
「> mysecretword」行は「下のプロンプトにパスワードを入力してください」行の後に2行があるので削除したいと思います。ファイルの開始後、任意の行数で一致が発生する可能性があるため、絶対行番号の場所は使用できません。
オンライン検索で同様の解決策がたくさん見つかりましたが、sed '/Enter your password.*/,+3d' filex
「パスワードを入力してください...」行と次の行も削除されますが、これは私が望むものではありません。一度一致した後、特定の行数の1行だけを削除したいと思います。
sed
これを行うには(または他の一般的なツール)、どのように使用しますか?
ベストアンサー1
おそらく
sed '/^Enter your password/ {
n
n
d
}' file
または均等に:
$ sed '/^Enter your password/ {n;n;d;}' file
Enter command below
> login
Command valid
Enter your password at the below prompt
Remember to make sure no-one is looking at your screen
Password accepted