Объедините несколько файлов в один без заголовков - PullRequest
0 голосов
/ 26 февраля 2019

Я новичок в сценариях Unix и мне нужна информация о Unix cmd - Можем ли мы cat все файлы с шаблоном, например abc_20190226_Part*.txt, в одном файле без их заголовка в команде unix.

1 Ответ

0 голосов
/ 26 февраля 2019

Сначала несколько тестовых файлов:

$ cat foo
11
12
13
$ cat bar
21
22
23

Одним из способов является использование tail.man tail:

-n, --lines=[+]NUM
       output the last NUM lines, instead of the last 10; or use -n +NUM 
       to output starting  with  line  NUM

так:

$ tail -n +2 foo
12
13

но:

$ tail -n +2 foo bar
==> foo <==
12
13

==> bar <==
22
23

О, нет, нам нужен цикл вокруг него:

$ for f in foo bar ; do tail -n +2 "$f" ; done
12
13
22
23

Другим способом является использование awk:

Документация GNU awk говорит:

FNR 
       FNR is the current record number in the current file. FNR is incremented 
       each time a new record is read (see section Explicit Input with getline). 
       It is reinitialized to zero each time a new input file is started.

так:

$ awk 'FNR>1' foo bar
12
13
22
23

Наконец,вам нужно перенаправить вывод в новый файл (one_file), например:

$ awk 'FNR>1' foo bar > one_file
$ cat one_file
12
13
22
23
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...