Оболочка: заголовок не остается наверху при добавлении в .CSV - PullRequest
0 голосов
/ 14 января 2019

Я использую:

find "$Original" -type f ! -name '.DS_Store' | 
awk -F/ 'BEGIN {print "Total Images"};{print $NF};'  >> "$ServerImageFlow"/SS1.csv 

Если я запускаю его ОДИН РАЗ, он регистрирует любые файлы в указанной папке в .CSV с заголовком «Всего изображений».

enter image description here

Но если я запускаю его несколько раз, заголовок не остается наверху.

enter image description here

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Вы можете использовать find, чтобы напечатать только базовое имя и добавить к файлу, а затем проверить, присутствует ли заголовок:

f="$ServerImageFlow"/SS1.csv
find "$Original" -type f ! -name '.DS_Store' -printf "%f\n" >> "$f"
gawk -i inplace 'NR == 1 && $0 != "Total Images" {print "Total Images"}; 1' "$f"
0 голосов
/ 15 января 2019

Напишите заголовок до , когда вы начнете awk, только если выходной файл еще не существует.

Хотя для этого вам вообще не нужно awk: GNU find может быть задан только для печати базовых имен.

outfile="$ServerImageFlow"/SS1.csv
[[ -e "$outfile" ]] || echo "Total Images" >"$outfile"
find "$Original" ! -name '.DS_Store' -type f -printf '%f\n' >>"$outfile"
0 голосов
/ 15 января 2019
outfile="${ServerImageFlow}/SS1.csv"
find "$Original" -type f ! -name '.DS_Store' | 
awk -v hd="$(head -1 "$outfile")" -F'/' '
    BEGIN{title="Total Images"; if (hd != title) print title} {print $NF}
' >> "$outfile"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...