【发布时间】:2017-08-17 12:38:11
【问题描述】:
我正在使用 awk 连接多个 csv 文件并修改行 但我不想打印标题我正在用另一种方法处理标题我只想让 awk 跳过标题
这是我的代码
OutFileName="Final.csv" # Fix the output name
i=0 # Reset a counter
for filename in ./*.csv; do
if [ "$filename" != "$OutFileName" ] ; # Avoid recursion
then
if [[ $i -eq 0 ]] ; then
head -1 $filename > $OutFileName # Copy header if it is the first file
fi
text=$(echo $filename | cut -d '_' -f 2-) #spilliting the string to get the date
text=$(echo $text | cut -d '.' -f -1)
awk -F',' -v txt="$text" 'FNR>1||$0=txt" "$1 FS $0' OFS=',' $filename | cat >> $OutFileName # cocatinating with awk
i=$(( $i + 1 )) #increse number
fi
done
它会给出这样的输出
Trialtime type Track time Notes Athlete
Trialtime type Track time Notes Athlete
20170101 07:15:00 07:15:00 Warmup ABC 85.2 Initial warmup Jon
20170101 07:45:00 07:45:00 Sprint1 ABC 59.44 First Sprint Jon
20170101 08:30:00 08:30:00 TRIAL ABC 57.21 Final attempt Jon
20170101 08:00:00 08:00:00 Warmup ABC 120.51 Initial warmup Bill
20170101 08:40:05 08:40:05 Sprint1 ABC 61.35 First Sprint Bill
20170101 09:15:00 09:15:00 Sprint2 ABC 60.08 Second Sprint Bill
20170101 10:30:00 10:30:00 TRIAL ABC 60.37 Final attempt Bill
20170101 07:15:00 07:15:00 Warmup ABC 85.2 Initial warmup Jon
20170101 07:45:00 07:45:00 Sprint1 ABC 59.44 First Sprint Jon
20170101 08:30:00 08:30:00 TRIAL ABC 57.21 Final attempt Jon
20170101 08:00:00 08:00:00 Warmup ABC 120.51 Initial warmup Bill
20170101 08:40:05 08:40:05 Sprint1 ABC 61.35 First Sprint Bill
20170101 09:15:00 09:15:00 Sprint2 ABC 60.08 Second Sprint Bill
20170101 10:30:00 10:30:00 TRIAL ABC 60.37 Final attempt Bill
Trialtime type Track time Notes Athlete
201701023 07:15:00 07:15:00 Warmup ABC 85.2 Initial warmup Jon
201701023 07:45:00 07:45:00 Sprint1 ABC 59.44 First Sprint Jon
201701023 08:30:00 08:30:00 TRIAL ABC 57.21 Final attempt Jon
201701023 08:00:00 08:00:00 Warmup ABC 120.51 Initial warmup Bill
201701023 08:40:05 08:40:05 Sprint1 ABC 61.35 First Sprint Bill
201701023 09:15:00 09:15:00 Sprint2 ABC 60.08 Second Sprint Bill
201701023 10:30:00 10:30:00 TRIAL ABC 60.37 Final attempt Bill
201701023 07:15:00 07:15:00 Warmup ABC 85.2 Initial warmup Jon
201701023 07:45:00 07:45:00 Sprint1 ABC 59.44 First Sprint Jon
201701023 08:30:00 08:30:00 TRIAL ABC 57.21 Final attempt Jon
201701023 08:00:00 08:00:00 Warmup ABC 120.51 Initial warmup Bill
201701023 08:40:05 08:40:05 Sprint1 ABC 61.35 First Sprint Bill
201701023 09:15:00 09:15:00 Sprint2 ABC 60.08 Second Sprint Bill
201701023 10:30:00 10:30:00 TRIAL ABC 60.37 Final attempt Bill
你可以看到 awk 每次都为每个 csv 文件获取标题有没有办法忽略标题?
【问题讨论】: