Это приведет к удалению первых десяти строк из всех файлов, имена которых варьируются от file00
до file99
:
sed -i.bak -n '11,$p' file[0-9][0-9]
Для этого может потребоваться GNU sed
, которая в OSX известна как gsed
. Для других seds попробуйте:
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
, за которым следуют две цифры.
Логика может быть инвертирована. Вместо того, чтобы явно печатать строки 11 и последующие, мы могли бы (подсказка: JigglyNaga) удалить первые десять строк:
sed -i.bak '1,10d' file[0-9][0-9]