2014-10-07 3 views
0

Я пытаюсь распечатать следующий результат в формате строки в файле csv. Может кто-нибудь помочь мне использовать awk или bash?Команда для печати вывода в формате строки

Server abc.com 
osbits x64 
ostype windows 

Я хочу напечатать вывод, как это и переслать в формат CSV

abc.com x64 windows 
+0

Care принять ответ? – anonymous

ответ

0

С AWK вы хотите установить Output Field Separator (OFS) в Comma, а затем напечатать 2-й, 4-го и 6-го полей в соответствии с вашим примером.

Для ввода многострочных вы можете использовать СЭД, чтобы присоединиться к линии до начала AWK

[email protected]:~ $ cat servers.txt 
Server abc.com 
osbits x64 
ostype windows 
[email protected]:~ $ cat servers.txt | sed -e 'N;N;s/\n/ /g' 
Server abc.com osbits x64 ostype windows 
[email protected]:~ $ cat servers.txt | sed -e 'N;N;s/\n/ /g' | awk '{ OFS=","; print $2,$4,$6}' 
abc.com,x64,windows 
+0

Посмотрите на отредактированный вопрос. Вход не является одной строкой. –

+0

Это был когда мой ответ был отправлен :) –

0

Это работает, но я уверен, что есть более идиоматический способ сделать это:

awk '{printf "%s%s", ((NR==1)?"":", "),$2}' 
0

Для ввода

Server abc.com foo.com bar.com buz.org 
osbits x64 x86 sparc ppc 
ostype windows linux solaris mac 

AWK сценария

{ 
    for (i=1;i<=NF;++i) 
     a[i][NR] = $i; 
} 
END { 
    for (i=2;i<=length(a); ++i) { 
     str = a[i][1] 
     for (j=2; j<=length(a[i]); ++j) 
      str = str "," a[i][j] 
     print str 
    } 
} 

производит

abc.com,x64,windows 
foo.com,x86,linux 
bar.com,sparc,solaris 
buz.org,ppc,mac 
0

Предположим, что ваш входной файл, file.txt, выглядит следующим образом:

Server abc.com 
osbits x64 
ostype windows 

Все последующие решения будут производить этот вывод:

Server,abc.comosbits,x64ostype,windows 
  1. AWK

    awk '{printf "%s,%s",$1,$2}END{print ""}' file.txt 
    
  2. Perl

    perl -000ane 'print join ",",@F,"\n"' file.txt 
    
  3. оболочки

    while read a b ; do printf "%s,%s" "$a" "$b"; done < file.txt; echo 
    
Смежные вопросы