私がこのファイルを扱っているとしましょう。
見える最初の行の先頭はあいまいですので無視してください。 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
これは、数字で始まらないすべての行と一致しますが、空行と一致しません。
grep
、sed
およびの場合、私の一般的なawk
規則は、一致と単純抽出の場合を使用し、状態のgrep
非保存再作成にはを使用しsed
、状態保存変更の場合を使用することですawk
。そのため、あなたの質問で要求したもの(他の人がすでに答えたもの)を実行するgrep
代わりに使用することをお勧めします。sed
sed
答え2
sed -e '/^[0-9]/d' filename > filename.new
またはその場で修正してください。
sed -i -e '/^[0-9]/d' filename
答え3
sed -e '/^[0-9].*$/d' oldfile > newfile