我有一个充满文件的目录,文件名中包含它们的创建日期(即“mvr-20160420.csv”)。这些文件包含逗号分隔的数据,我将这些数据组合成一个文本文件。我试图弄清楚如何将每个文件的日期部分添加到数据中。我可以读取文件,但不能读取文件名。
mvr-20160420.csv 的示例文件:
client employee id,first name,last name,points
14204,Bob,Smith,5
我有一个 Korn 脚本,只是尝试将文件名添加到数据中:
for file in $Folder/path/burnsmcd-mvr*.csv
do
FN=file
if [ $FIRSTTIME = $STATUS_OK ]
then
FIRSTTIME=$STATUS_NOT_OK
cat $file | strings | sort -n | awk 'BEGIN{FS=","}{OFS="|"}{if ( $1 ~ /^[0-9]+$/) print "ADMVR", $1, $2, $3, $4, $FN}' > $Folder/path/ext_test.txt
else
cat $file | strings | sort -n | awk 'BEGIN{FS=","}{OFS="|"}{if ( $1 ~ /^[0-9]+$/) print "ADMVR", $1, $2, $3, $4, $FN}' >> $Folder/path/ext_test.txt
fi
done
所以我的输出 ext_test.txt 看起来像这样:
14204|Bob|Smith|5|14204,Bob,Smith,5
我似乎无法添加文件名。我还需要提取日期部分。
答案1
$ awk 'BEGIN {OFS=","}
{ split (FILENAME, parts, "[-.]"); print FILENAME, parts[2], $0 }' \
mrv-20161225.csv
mrv-20161225.csv,20161225,client employee id,first name,last name,points
mrv-20161225.csv,20161225,14204,Bob,Smith,5
一个没有的早晨awk就像漫长的一天工作一样。 ;-)