複数のファイルから最初の10行を削除する

複数のファイルから最初の10行を削除する

ファイル名は(百ファイル)file00で指定されますfile99。それらはすべて同じディレクトリにあります。 100個のファイルをすべてインポートして各ファイルの最初の10行を削除するにはどうすればよいですか? CentOS 7を使用しています。

ベストアンサー1

file00これにより、次の範囲に名前が付いたすべてのファイルから最初の10行が削除されますfile99

sed -i.bak -n '11,$p' file[0-9][0-9]

これには、OSXでsed呼び出されるGNUが必要になる場合があります。gsed他のsedの場合は、以下を試してください。

find file[0-9][0-9] -maxdepth 0 -type f -exec sed -i.bak -n '11,$p' {} \;

仕組み:

  1. -i.baksed にファイルを変更し、拡張子 .bak を持つバックアップファイルを作成するように指示します。

  2. -n明示的に要求されない限り、行を印刷しないようにsedに指示します。

  3. 11,$p$sedに行11で始まり、ファイルの最後の行で終わる行を印刷するように指示します(で示されています)。

  4. file[0-9][0-9]file名前の後に2桁の数字が続くすべてのファイルと一致するように拡張されるシェルグローブ。

選ぶ

ロジックは反転できます。 11行目から明示的に印刷する代わりに(ヒント:JigglyNaga)最初の10行を削除できます。

sed -i.bak '1,10d' file[0-9][0-9]

おすすめ記事