解析文件名并将其添加到文本文件

解析文件名并将其添加到文本文件

我有一个充满文件的目录,文件名中包含它们的创建日期(即“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就像漫长的一天工作一样。 ;-)

相关内容