Замена текста в определенной позиции из другого файла

Вы можете определить диапазон и удалить из него страницы (используя ~), чтобы добиться этого:

pdftk 1.pdf cat 2-end~end output output.pdf

Это говорит pdftk cat для переноса страниц со второй страницы на последнюю включенную страницу (2-конец) и удаление последней страницы из диапазона (~конец). В результате получается PDF-файл, содержащий все, кроме первой и последней страниц оригинала.

1
17.07.2017, 15:33
2 ответа

Вероятно, проще использовать комбинациюpaste+cut

$ paste -d'\0' <(cut -c1-4 File1.txt) File2.txt <(cut -c9- File1.txt)
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
  • -d'\0'так, чтобы вводы объединялись без каких-либо символов между
  • <()— это замена процесса
  • cut -c1-4дает первые четыре символа из каждой строки
  • cut -c9-дает все символы из каждой строки, начиная с 9-й позиции


Другой способ — идиоматическая обработка двух файлов с использованиемawk

$ awk 'NR==FNR{a[FNR]=$0; next} {print substr($0,1,4) a[FNR] substr($0,9)}' File2.txt File1.txt
abcd1234efghijklmno
abcd4321efghijklmno
abcd6543efghijklmno
abcd5678efghijklmno
  • NR==FNR{a[FNR]=$0; next}сохраняет все строки из File2.txtв массиве aс номером строки в качестве ключа
  • print substr($0,1,4) a[FNR] substr($0,9)используйте substrдля извлечения необходимых символов и вставьте строки из File2.txtмежду ними
0
28.01.2020, 00:52

Это выглядит несколько странно, но:

dd if=file1 bs=1 count=4 > file3
dd if=file2 bs=1 count=4 >> file3
dd if=file1 bs=1 skip=8 >> file3  

Вы не упомянули о копировании любой новой строки в файле2, и похоже, что вы этого не хотели (если она есть ).

0
28.01.2020, 00:52

Теги

Похожие вопросы