Obecnie mam problem z danymi CSV ff.Polecenie linux sed - dodawanie ciągów na każdym końcu wiersza csv
COLUMN1,COLUMN2,COLUMN3,COLUMN4
apple1,apple2,apple3,apple4
banana1,banana2,banana3,
caimito1,"caimito21
caimito22","caimito31
caimito32",caimito4
To będzie wyglądać następująco:
╔══════════╦═══════════╦═══════════╦══════════╗
║ COLUMN1 ║ COLUMN2 ║ COLUMN3 ║ COLUMN4 ║
╠══════════╬═══════════╬═══════════╬══════════╬
║ apple1 ║ apple2 ║ apple3 ║ apple4 ║
║ banana1 ║ banana2 ║ banana3 ║ ║
║ caimito1 ║ caimito21 ║ caimito31 ║ caimito4 ║
║ ║ caimito22 ║ caimito32 ║ ║
╚══════════╩═══════════╩═══════════╩══════════╝
więc mój plan jest dodanie COLUMN5 i każdy wiersz to będzie mieć wartość „owoc”. wykorzystywane
Command:
sed "1 s/$/,COLUMN5/g" FILE.csv | sed "2,$ s/$/,FRUIT/g" > OUTPUT.csv
wyjściowa:
╔══════════╦════════════════╦════════════════╦══════════╦═════════╗
║ COLUMN1 ║ COLUMN2 ║ COLUMN3 ║ COLUMN4 ║ COLUMN5 ║
╠══════════╬════════════════╬════════════════╬══════════╬═════════╣
║ apple1 ║ apple2 ║ apple3 ║ apple4 ║ FRUIT ║
║ banana1 ║ banana2 ║ banana3 ║ ║ FRUIT ║
║ caimito1 ║ caimito21FRUIT ║ caimito31FRUIT ║ caimito4 ║ FRUIT ║
║ ║ caimito22 ║ caimito32 ║ ║ ║
╚══════════╩════════════════╩════════════════╩══════════╩═════════╝
Czy istnieje jakiś sposób, aby dodać "owoc" bez wpływu "caimito" wiersz?
Próbowałem także ff. polecenie, ale nie wyszło. Dodano "," przed "$".
sed "1 s/$/,COLUMN5/g" FILE.csv | sed "2,$ s/,$/,FRUIT/g" > OUTPUT.csv
dla tabeli +1 .. –
2 rdzenie sed mogą być zastąpione przez 1 z działaniem oddzielonym przez ';' jak to 'sed '1 action1; 2, $ action2 "Twój plik" – NeronLeVelu