Редактирование большого количества текстовых файлов - PullRequest
1 голос
/ 25 июля 2010

У меня около 350 текстовых файлов, которые содержат все содержимое 5 папок на моем HD. Для каждого из этих файлов я хотел бы удалить указанное количество символов в начале и конце каждого файла. Я не знаю AppleScript, но подозреваю, что он подходит для того, чего я хочу достичь. Любая помощь по автоматизации этого была бы очень признательна, так как ручное редактирование этих файлов является сложной задачей. Большое спасибо.

В начале каждого файла необходимо удалить следующий текст:

STARTTYPE:RGIN
MODEXP:NO

В конце каждого файла необходимо удалить следующее:

REFACTORSCALE:2.0
ENDTYPE:FACTORED

1 Ответ

2 голосов
/ 25 июля 2010

Есть ли в OS X команда unix sed ?Он был разработан для решения именно этого типа проблем.

Вы бы сказали (при условии, что ваш текст для удаления одинаков в каждом файле):

sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' file_pattern
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' file_pattern

Например, скажем, кучаиз файлов .txt необходимо, чтобы эти изменения были сделаны в этих 5 каталогах в вашем домашнем каталоге.Вы могли бы сделать:

sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_1/*.txt
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_1/*.txt
sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_2/*.txt
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_2/*.txt
sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_3/*.txt
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_3/*.txt
sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_4/*.txt
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_4/*.txt
sed -i 's/STARTTYPE:RGIN\nMODEXP:NO\n//' /home/Run_Loop/directory_5/*.txt
sed -i 's/REFACTORSCALE:2.0\nENDTYPE:FACTORED\n//' /home/Run_Loop/directory_5/*.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...