숫자가 저장되는 days.txt라는 파일이 있습니다. 하늘. 여기에는 1개의 레코드(현재 7개)만 포함되어 있습니다.
다음 awk 표현식에서 days.txt 값을 사용하고 싶습니다.
awk -F, '{ $1 = substr($1,1,1) strftime("%Y%m%d",mktime(sprintf("%4d %.2d %.2d 00 00 00",substr($1,2,4),substr($1,6,2),substr($1,8,2)))-7*24*60*60) }; 1' OFS="," file
이 awk 문은 기본적으로 다른 파일의 날짜를 7일씩 옮깁니다. 변수에 days.txt 값을 사용하려고 하면 awk 문이 오류를 반환하지 않지만 날짜도 이동하지 않습니다.
awk -F, '{ $1 = substr($1,1,1) strftime("%Y%m%d",mktime(sprintf("%4d %.2d %.2d 00 00 00",substr($1,2,4),substr($1,6,2),substr($1,8,2)))-$(value)*24*60*60) }; 1' OFS="," file
이에 대한 도움이 매우 도움이 될 것입니다!
답변1
값을 먼저 쉘 변수로 읽지 말고 awk 변수로 읽으십시오.
awk '
BEGIN {FS=OFS="," }
NR==FNR { value=$0; next }
{ $1 = substr($1,1,1)...substr($1,8,2)))-value*24*60*60) }
1' days.txt file