파일 이름을 구문 분석하여 텍스트 파일에 추가합니다.

파일 이름을 구문 분석하여 텍스트 파일에 추가합니다.

이름에 생성 날짜가 포함된 파일로 가득 찬 디렉터리가 있습니다(예: "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

없는 아침직장에서 긴 하루를 보낸 것처럼. ;-)

관련 정보