sed one-liner は、数字で始まるすべての行を削除します。

sed one-liner は、数字で始まるすべての行を削除します。

ここに画像の説明を入力してください。

私がこのファイルを扱っているとしましょう。

見える最初の行の先頭はあいまいですので無視してください。 43は削除される次の行の先頭です。

次の行(44で始まりピリオドで終わる)が削除されます。

次の行(424行のみで構成)も消えます。

次の行(「11. Kings and Heroes」で構成)も消えました。

次の行は予約されています。

答え1

私はこれを使用しますgrep(1)

grep -v '^[0-9]' filename

^[0-9]数字で始まるすべての行と一致し、-v一致する行を含めるのではなく除外します。[:digit:]代わりに文字クラスを使用することもできます[0-9]

代わりに、-v範囲を逆に変更できます。

grep '^[^0-9]' filename

これは、数字で始まらないすべての行と一致しますが、空行と一致しません。

grepsedおよびの場合、私の一般的なawk規則は、一致と単純抽出の場合を使用し、状態のgrep非保存再作成にはを使用しsed、状態保存変更の場合を使用することですawk。そのため、あなたの質問で要求したもの(他の人がすでに答えたもの)を実行するgrep代わりに使用することをお勧めします。sedsed

答え2

sed -e '/^[0-9]/d' filename > filename.new

またはその場で修正してください。

sed -i -e '/^[0-9]/d' filename

答え3

sed -e '/^[0-9].*$/d' oldfile > newfile

関連情報