Как расположить два файла друг за другом, но опустить последняя / первая строка соответственно?

У меня есть два файла, которые я хочу объединить. Однако последнюю строку первого файла и первую строку последнего файла следует опустить.

Я уверен, что это можно сделать в оболочке UNIX (или, скорее, Cygwin). Но как?

14
задан bastibe 30 August 2010 в 12:11
поделиться

5 ответов

$ head --lines=-1 file1 > res
$ tail --lines=+2 file2 >> res
16
ответ дан 1 December 2019 в 10:17
поделиться
awk 'FNR>2{print p}{p=$0}' file1 file2

Объяснение по запросу:

FNR — номер текущей записи текущего обрабатываемого файла.В начале каждой итерации строка сохраняется в переменной «p», но еще не выводится на печать. Когда номер записи достигает 3, выводится переменная "p", которая содержит запись 2. Это означает 2-ю строку. Когда awk достигает конца файла, последняя строка не распечатывается, а затем переходит к следующему файлу.

2
ответ дан 1 December 2019 в 10:17
поделиться

Следующая стенограмма показывает, как этого добиться:

pax> cat file1.txt
1.1
1.2
1.3
1.4
1.5

pax> cat file2.txt
2.1
2.2
2.3
2.4
2.5

pax> head --lines=-1 file1.txt ; tail --lines=+2 file2.txt
1.1
1.2
1.3
1.4
2.2
2.3
2.4
2.5

Присвоение команде head отрицательного значения приводит к тому, что это далеко от конца. Точно так же счет, начинающийся с +, приводит к тому, что tail начинается с этой строки, а не через определенное количество строк от конца.

1
ответ дан 1 December 2019 в 10:17
поделиться

вы можете использовать:

head -n -1 file1 && tail -n +2 file2

head показывает первые строки файла, параметр -n показывает первые n строк файла, но если вы поставите - перед номером, он покажет весь файл, кроме последнего н строк.

хвост аналоговый..

для лучшего справки:

мужчина голова

человек хвост

3
ответ дан 1 December 2019 в 10:17
поделиться
head -n -1 file1

напечатает все строки в file1, кроме последней строки.

tail -n +2 file2

напечатает все строки в file2, кроме первой строки.

Объедините два как:

head -n -1 file1 ; tail -n +2 file2
2
ответ дан 1 December 2019 в 10:17
поделиться
Другие вопросы по тегам:

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