Как напечатать имя_столбца=значение в новой строке, прочитав файл CSV?

Поместите список всех файлов, кроме первого, в переменную и запустите для него цикл for.

 listinmemory=`ls -alht | tail -n +5 | awk '{print $9}'`; for each in $listinmemory; do mv $each /path/to/directory; done

ls -alhtперечислит 4 строки, на которых вы не хотите ничего запускать,

total 123K
drwxr-xr-x.  5 user user 1.0K Jun 27 09:20.
drwx------. 13 user user 2.0K Jun 27 10:36..
-rw-rw-r--.  1 user user 3.0K Jun  6 18:29 file1 

самый последний файл и 3 строки --затем все файлы, которые вы делаете, поэтому tail -n +5пропустит первые 4 строки и запустит mv $each /path/to/directoryдля всех найденных файлов!

-1
17.04.2020, 22:03
4 ответа
$ awk -F' *, *' -v OFS='\n' -v ORS='\n\n' '
    NR==1{split($0,h); next} {for (i=1;i<=NF;i++) $i=h[i]"="$i}
1' file
Name=Alex
Age=22
Education=Computer Science
Address=TX

Name=Ron
Age=24
Education=Computer Science
Address=AU
2
19.03.2021, 02:28

В случае, если это всегда один и тот же порядок столбцов и всегда первая строка, содержащая столбцы:

<Foo.csv tail -n '+2' | awk -F',' '{print "Name="$1"\nAge="$2"\n"}'

Запускает канал с содержимым Foo.csv. Пропускает первую строку (конец кажется смещенным на единицу, поэтому +2 )и отображает все остальные с запятой в качестве разделителя (-F',', первая - $1, вторая $2 )в блоках, разделенных новой строкой. Заполните пропущенное поле (s ). Обратите внимание на одинарные кавычки вокруг командного блока awk и двойные кавычки для статического текста внутри него.

1
19.03.2021, 02:28

Предполагая, что символы пробела перед TXи AUявляются опечатками:

$ awk -F',' 'FNR==1{split($0, a); next}{for (i=1;i<=NF;i++)print a[i] "=" $i; print ""}' Foo.csv
Name=Alex
Age=22
Education=Computer Science
Address= TX

Name=Ron
Age=24
Education=Computer Science
Address= AU

Это будет печатать новую строку после каждого блока.

4
19.03.2021, 02:28
$ cat print.sh 
#!/bin/sh

echo "Name=$1\nAge=$2\nEducation=$3\nAddress=$4\n"
$ cat Foo.csv | csv-exec --./print.sh %Name %Age %Education %Address

csv -exec взят изhttps://github.com/mslusarz/csv-nix-tools.

0
19.03.2021, 02:28

Теги

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