Isso excluirá as dez primeiras linhas de todos os arquivos cujos nomes variam de file00
a file99
:
sed -i.bak -n '11,$p' file[0-9][0-9]
Isso pode exigir o GNU sed
, que é conhecido como gsed
no OSX. Para outros seds, tente:
find file[0-9][0-9] -maxdepth 0 -type f -exec sed -i.bak -n '11,$p' {} \;
Como funciona:
-
-i.bak
informa ao sed para modificar os arquivos no local, criando um arquivo de backup com a extensão .bak -
-n
diz ao sed para não imprimir nenhuma linha, a menos que seja explicitamente solicitada. -
11,$p
informa ao sed para imprimir linhas iniciando com o número de linha 11 e continuando até a última linha (denotada$
) no arquivo. -
file[0-9][0-9]
é um shell glob que será expandido para corresponder a todos os arquivos cujos nomes consistam emfile
seguido por dois dígitos.
Alternativa
A lógica pode ser invertida. Em vez de imprimir explicitamente as linhas 11 e depois, poderíamos (dica: JigglyNaga) excluir as dez primeiras linhas:
sed -i.bak '1,10d' file[0-9][0-9]