두 타임스탬프의 시차를 얻고 싶지만 타임스탬프 변수를 셸에서 awk
.
쉘 코드:
FTIMESTAMP="2015-07-01 12:30:50"
gawk -v FTIMESTAMP=$FTIMESTAMP -v DSECONDS=$DSECONDS -f test.awk /home/abc/TShift.csv
오류는 다음과 같습니다
gawk: 12:30:50
gawk: ^ syntax error
이스케이프 문자도 작동하지 않습니다 FTIMESTAMP="2015-07-01 12\:30\:50"
.
다른 타임스탬프가 있는데 awk
그 타임스탬프 간의 시차를 계산하고 싶습니다.
답변1
쉘이 실행되지 않도록 하려면 변수를 인용해야 합니다.분할+전역:
gawk -v FTIMESTAMP="$FTIMESTAMP" -v DSECONDS="$DSECONDS" ...
-v var="$shell_var"
주석에서 이스케이프 시퀀스를 확장합니다 $shell_var
. 또는 셸 에서 .ENVIRON
ARGV
$shell_var
awk
답변2
시도 해봐
gawk -v FTIMESTAMP="$FTIMESTAMP" -v DSECONDS=$DSECONDS -f test.awk /home/abc/TShift.csv
안에 흰색이 들어있어요$FTIMESTAMP
또는 호출 쉘에서
FTIMESTAMP="2015-07-01 12:30:50"
export FTIMESTAMP
그리고 awk 스크립트( BEGIN { .. }
섹션) 에서
FTIMESTAMP=ENVIRON["FTIMESTAMP"] ;