【发布时间】:2015-11-30 14:03:28
【问题描述】:
我想提取 911116683 和 USCAFARES 并显示我正在使用 awk 处理的输入文件的名称。字符串是:'/split/911116683/1Y/USCAFARES'。
我的 awk 程序是:
awk -F" " 'BEGIN { OFS="|"; FILE_NAME="NULL"; WU_SG="NULL"; SRC_FTP_LOG_FILENAME="NULL"; } /Src file:/ { FILE_NAME1=$3; WU_SG1=$3; } END{ FILE_NAME=substr(FILE_NAME1,22,9); WU_SG=substr(FILE_NAME1,9,9); SRC_FTP_LOG_FILENAME=FILENAME; print(FILE_NAME,WU_SG,SRC_FTP_LOG_FILENAME); }' $File_to_be_processed
但是我收到 echo 语句的语法错误,我猜它不能使用。如何在awk中提取字段并使用变量显示?
我的输入文件,即 File_to_be_processed 包含这一行:
Src file: '/split/911116683/1Y/USCAFARES' on host 'Local'
我想要的输出是:
USCAFARES|911116683|SYSOUT_0ranv_00007
其中SYSOUT_0ranv_00007 是输入文件的名称或File_to_be_processed
【问题讨论】:
-
不要全部使用大写的变量名。这是 awk 内置变量。您的脚本中没有 echo 语句 -
I am getting syntax error for echo statement是什么意思,语法错误是什么,代码的哪一部分产生了它?编辑您的问题以清理并回答这些问题,请勿在评论中回复。