Скриншотов нет, но если я правильно вас понял, вы можете сделать что-то вроде export DISPLAY =: 0
Похоже, вы хотите: 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
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проверено с 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,,,