Командная строка на Mac.Есть несколько текстовых файлов.Хотите удалить определенные строки из группы файлов, а затем добавить оставшийся текст файла в новый объединенный файл.В настоящее время предпринимаются следующие попытки:
for file in *.txt;
do echo $file >> tempfile.html;
echo ''>>tempfile.html;
cat $file>>tempfile.html;
find . -type f -name 'tempfile.html' -exec sed -i '' '3,10d' {} +;
find . -type f -name 'tempfile.html' -exec sed -i '' '/<ACROSS>/,$d' {} +;
# ----------------
# some other stuff
# ----------------
done;
Я извлекаю часть текста из группы файлов и объединяю их все вместе, но все же необходимо знать, из какого файла происходил каждый выбор.Сначала я сопоставляю имя файла, а затем (предположительно) выделение текста из каждого файла.затем повторите процесс.
Кроме того, мне нужно оставить исходные текстовые файлы на месте для других целей.
Таким образом, объединенный файл будет иметь вид:
filename1.txt
text-selection
more_text
filename2.txt
even-more-text
text-text-test-test
Первый SED предполагается удалить из строки 3 в строку 10. Второй должен удалить из строки, содержащей до концафайл.
Однако, что происходит, то первый удаляет все в временном файле.Второй ничего не делал.(каждый тестировался отдельно)
Что я делаю не так?
Должно быть, я что-то упустил.Даже попытка - что кажется, - очень простой пример тоже не работает.Я надеюсь, что следующий пример удалит строки 3-10, но сохранит оставшуюся часть файла в test.txt.
sed '3,10d' nxd2019-01-06.txt > test.txt