2016-07-20 6 views

Antwort

1

Verwenden Sie diesen Befehl tr '\n' ',' < input_file

Für einfache Anführungszeichen verwenden sed -e "s/^/'/" input_file | sed -e "s/$/'/" | tr '\n' ','

(Nicht für einzelne/doppelte Anführungszeichen zu entkommen Probleme getestet)

Für variable NEW_VAR=$(echo $VAR | sed -e "s/^/'/" | sed -e "s/$/'/" | tr '\n' ',')

+0

Dank Sameer. Nur um ein wenig mehr zu erläutern ... Ich erhalte alle Werte aus einer Datenbank in eine Variable (zB v_val) in meinem Skript. Was wäre der Befehl unix, um Zeilen aus dieser Variablen in eine neue Variable (z. B. v_com) zu kombinieren, in der Werte in einem durch Kommas getrennten Format mit einem Anführungszeichen stehen. – user6615476

+0

vielen dank. Es funktionierte. – user6615476

0

Sie müssen Sie awk verwenden, um die Ausgabe zu formatieren. Ruft sed and awk eine Glocke?

The file <test.txt> 
California 
New York 
Washington 
South Carolina 
Kansas 

$ grep input file | awk '{print}' ORS=', '

California, New York, Washington, South Carolina, Kansas 

Dann Zeichenfolge verketten und für die korrekte Ausgabe blicken.

mit awk können Sie versuchen, diese

sudo awk -F'\n' '{if(NR == 1) {printf "\x27" $0 "\x27"} else {print "," "\x27" $0 "\x27"}}' test.txt 

'California','New York','Washington','South Carolina','Kansas' 

Sie können auch diese versuchen

sudo awk 'BEGIN {RS=""}{gsub(/\n/,"\x27,\x27",$0); print $0}' test.txt 
+0

@ref: http://shop.oreilly.com/product/9781565922259.do – unixmiah

+0

Warum verwenden Sie 'Grep'? – hek2mgl

+0

@ hek2mgl Wenn Sie wissen, was Sie tun, können Sie sed verwenden. zum Beispiel, sed -n '/ regex/p'/Pfad/zu/Datei dann Pipe den zweiten Befehl. – unixmiah

Verwandte Themen