我想提取911116683
和USCAFARES
,并显示使用awk处理的输入文件的名称。该字符串是:'/split/911116683/1Y/USCAFARES'
。如何在使用awk编程的分隔符后提取一行的一部分并将其打印输出?
我的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语句 - 你是指''我得到echo语句的语法错误',语法错误是什么,以及代码的哪个部分正在生成它?编辑你的问题来清理并回答这些问题,不要在评论中回复。 –