Linux одна строка из первого файла объединяется в несколько строк во втором файле, транспонируется, денормализуется

Я не знаю, как только показывать те процессы, которые используют более 10 % памяти, но вы можете отсортировать по проценту использования памяти или ЦП F6и выбрать PERCENT_MEMили PERCENT_CPU. Вы можете уменьшить окно терминала, чтобы видеть только несколько верхних.

0
16.11.2020, 23:23
3 ответа
$ awk -v OFS='\t' 'NR==FNR{a[FNR==1]=$0; next} {print a[FNR==1], $0}' file1 file2
Group   Country Lang    EMPID   STOREID
IT      USA     ENG     1001    1400
IT      USA     ENG     1002    1401
IT      USA     ENG     1003    1401

Вышеупомянутое просто использует 1 или 0 результат сравнения «это первая строка файла»(FNR==1)для индексации массива, поэтому вы получаете индекс 1, связанный с первой строкой из файла 1, когда когда это первая строка из файла 2 и индекс 0, связанный со второй строкой из файла 1 для каждой второй строки файла 2. Он будет вести себя одинаково в любом awk.

2
18.03.2021, 22:49

Для этой задачи можно использовать awk.

awk '
    FNR == NR {buf[NR] = $0; next} 
    {print (FNR==1 ? buf[1] : buf[2]) "\t" $0}
' file1 file2

Сохраните заголовок и строку при анализе первого файла(FNR==NR)и напечатайте соответствующий префикс вместе с каждой строкой второго файла.

Выход:

Group   Country Lang    EMPID   STOREID
IT      USA     ENG 1001    1400
IT      USA     ENG 1002    1401
IT      USA     ENG 1003    1401
0
18.03.2021, 22:49

Попробуйте этот -лайнер с GNU awk:

$ awk 'FNR==NR {a[NR]=$0;nrow=FNR;next} NR==nrow+1 {print a[1],$0;next} {print a[2],$0}' data1 data2

Group   Country Lang EMPID   STOREID
IT      USA     ENG 1001    1400
IT      USA     ENG 1002    1401
IT      USA     ENG 1003    1401

с:

$ cat data1
Group   Country Lang
IT      USA     ENG
$ cat data2
EMPID   STOREID
1001    1400
1002    1401
1003    1401
0
18.03.2021, 22:49

Теги

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