我使用:
find "$Original" -type f ! -name '.DS_Store' |
awk -F/ 'BEGIN {print "Total Images"};{print $NF};' >> "$ServerImageFlow"/SS1.csv
如果我一次运行它,它会将指定文件夹中的所有文件记录到带有标题“总图像”的.CSV中。
但是如果我运行几次,则Header不会停留在顶部。
答案 0 :(得分:1)
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"
答案 1 :(得分:1)
仅在输出文件尚不存在时,才在开始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"
答案 2 :(得分:0)
您可以使用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"