Добавьте m-й и n-й столбцы файла со столбцами другого файла

Скриншотов нет, но если я правильно вас понял, вы можете сделать что-то вроде export DISPLAY =: 0

1
31.07.2015, 17:07
2 ответа

Похоже, вы хотите: i) добавить содержимое файла file1 в file2 и ii) изменить формат файла file2, чтобы он соответствовал формату файла one. На самом деле ваш вопрос не об этом, а о том, что вы показываете в своем выводе. Если я неправильно понял, пожалуйста, отредактируйте свой вопрос и уточните.

Чтобы сделать это, вы можете просто сделать:

awk 'NR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file2 >> file1 

Это сделает file1 выходным файлом. Если вы хотите сохранить file1 , вы можете сделать:

( cat file1; awk 'NR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file2 ) > out

Или вы можете сделать все это в awk (это просто упрощенная версия решения Archemar):

awk 'NR==FNR{print; next} FNR>1{printf ",%s,,,,%s,,,\n",$1,$2}' file1 file2 > out
1
29.04.2021, 00:25

try

awk 'FNR == NR { print ; next ; } 
     NR > FNR && FNR > 1 { 
          split($0,A) ; 
          printf ",%s,,,,%s,,,\n",A[1],A[2] ;  }' f1 f2 

(можно в одну строку, я разбиваю, чтобы было удобнее читать)

where

  • FNR == NR { print ; next ; } копируем строки из первого файла
  • NR > FNR && FNR > 1 выбираем строку из второго файла без заголовка
  • split($0,A) ; поместить два var в массив (A)
  • printf ",%s,,,,%s,,,\n",A[1],A[2] ; и print

edit

проверено с f1

a1,a2,a3,a4,a5,a6,a7,a8,a9
q,w,,,,y,u,,
a,z,,,,q,n,,
.........................
z,p,,,,w,e,,

и f2

b1  b2
f   t
a   p
m   n
m   y
t   o

run :

awk 'FNR == NR { print ; next ; } NR > FNR && FNR> 1 { split($0,A) ; printf ",%s,,,,%s,,,\n",A[1],A[2] ;  }' f1 f2

result:

a1,a2,a3,a4,a5,a6,a7,a8,a9
q,w,,,,y,u,,
a,z,,,,q,n,,
.........................
z,p,,,,w,e,,
,f,,,,t,,,
,a,,,,p,,,
,m,,,,n,,,
,m,,,,y,,,
,t,,,,o,,,
1
29.04.2021, 00:25

Теги

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