gnuplot에서 awk에 쉘 변수를 전달해야하지만 오류 메시지가 나타납니다 : 변수는 sript에 설정되어 있으며 FILE이라고합니다. 날짜에 따라 변경됩니다. 내 코드 : (A의 gnuplot 스크립트)gnuplot에서 awk에 쉘 변수 전달하기
plot FILE using 1:14 with points pointtype 7 pointsize 1 # this works fine
replot '< awk ''{y1 = y2; y2 = $14; if (NR > 1 && y2 - y1 >= 100) printf("\n") ; if (NR > 1 && y2 -y1 <= -100) printf("\n"); print}'' FILE' using 1:14 with linespoints
Err msg
awk: fatal: cannot open file `FILE' for reading (No such file or directory)
내가 하드 코드 파일 경로 replot 작품.
누구나이 변수를 awk에 전달해야하는 코드를 명확히 할 수 있습니까? 여기
% environment_variable=FILE
% awk -vawk_variable="${environment_variable}" 'BEGIN { print awk_variable }' ?
내의 gnuplot 스크립트 코드입니다 : 내가 좋아하는 뭔가 제대로 가고 있습니까
#FILE selection - we want to plot the most recent data file
FILE = strftime('/data/%Y-%m-%d.txt', time(0)) # this is correct
print "FILE is : " .FILE
#set file path variable for awk : (This is where my problem is)
awk -v var="$FILE" '{print var}'
awk '{print $0}' <<< "$FILE"
이
첫 번째 스크립트에서는'FILE' 대신' "$ FILE"'을 사용하십시오. 둘째, 마지막 줄에는'<<<'이 필요하지 않습니다. 'awk -v var = "$ FILE" '{print var}''은 불완전한 구문이고 인자로 파일을 필요로하므로 컴퓨터가 멈 춥니 다. 그냥'awk '{print $ 0}' "$ FILE"을 사용하십시오. – Aserre
@Ploutox 그는'<<<'이 필요합니다. 변수의 데이터를 awk에 가져옵니다. – Jotne
@Jotne 오, 나는'FILE'이 파일의 전체 내용이 아닌 경로를 저장했다고 생각했습니다. 그렇다면 사실 당신은 맞습니다. 편집 : 추가 읽은 후 OP 그냥'$ FILE' 가장 최근 파일의 경로를 저장 한 것 같습니다. 그런 다음 그는'<<<'을 제거해야합니다 (그렇지 않으면 그의 awk 명령이 단지 경로를 인쇄합니다). – Aserre