ファイル名は(百ファイル)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' {} \;
仕組み:
-i.bak
sed にファイルを変更し、拡張子 .bak を持つバックアップファイルを作成するように指示します。-n
明示的に要求されない限り、行を印刷しないようにsedに指示します。11,$p
$
sedに行11で始まり、ファイルの最後の行で終わる行を印刷するように指示します(で示されています)。file[0-9][0-9]
file
名前の後に2桁の数字が続くすべてのファイルと一致するように拡張されるシェルグローブ。
選ぶ
ロジックは反転できます。 11行目から明示的に印刷する代わりに(ヒント:JigglyNaga)最初の10行を削除できます。
sed -i.bak '1,10d' file[0-9][0-9]