Удалить текст из нескольких файлов - PullRequest
1 голос
/ 15 ноября 2011

Я хочу удалить текст из нескольких файлов. Это может быть от 10 до 1000 файлов, поэтому удаление его вручную - это слишком много работы. Я нашел пару вопросов SO, таких как: Удалить определенные строки в нескольких текстовых файлах с помощью бесплатного приложения? , но ни одна из них не помогла

Чтобы найти и заменить, я мог бы написать команду perl, но в ней нет опций. Например, я хочу удалить первые четыре строки во всех файлах. Кто-нибудь знает решение? Или, может быть, приложение? Я бы предпочел что-то без VBScript.

Ответы [ 4 ]

2 голосов
/ 15 ноября 2011

sed(1) или awk(1) отлично подойдет для этой работы. Например, чтобы удалить первые 4 строки всех файлов .txt в текущем каталоге:

sed -i~ 1,4d *.txt

Это удалит первые 4 строки всех файлов .txt в любом месте подкаталога текущего каталога:

find . -type f -iname \*.txt -exec sed -i~ 1,4d '{}' +
2 голосов
/ 15 ноября 2011

BBEdit TextWrangler (бесплатно) имеет возможность вносить изменения в несколько файлов.Команда «Поиск нескольких файлов» в меню «Поиск».

1 голос
/ 15 ноября 2011

Если, например, вы пытаетесь удалить комментарии из нескольких файлов кода, и существует шаблон, в котором все комментарии начинаются с #, затем откройте консоль, перейдите в каталог, в котором находятся ваши файлы, и введите следующие команды:

foreach file (*dat)
sed '/^\#/d' $file > tt
mv tt $file
end

В других случаях у вас может быть текстовый файл, для которого заданное количество строк сверху являются комментариями.Допустим, вы хотите избавиться от первых 3 строк.Итак, вот фокус:

sed '1,3d' myFile > tt 
mv tt myFile

Вот что происходит:

  • sed '/^\#/d' myFile удаляет все строки, начинающиеся с #, из файла myFile и выводит результат в консоль.
  • > tt перенаправляет вывод во временный файл с именем tt
  • mv tt myFile, перемещает временный файл tt в myFile
1 голос
/ 15 ноября 2011

САС, вероятно, будет работать очень хорошо.Является свободным и может делать многое из того, что вы хотите.Есть порты windows, mac и linux.

SED Stream Editor

...