【发布时间】:2013-08-08 04:09:20
【问题描述】:
我目前正在处理 AWK,我使用了三个变量:
- $0 变量 - 对于本例,它相当于:
path/filename.cpp LOG_ERR << "error in this log" << e.what();
- $logName变量——我解析出cpp文件的名字,即:
filename
- $2 变量 - 包含默认的第二个值:
LOG_ERR
问题:
我想做的是像这样连接值:
logName=$logName $2;
但我得到的不是预期值filenameLOG_ERR,而是:
filename LOG_ERR << "error in this log" << e.what();
我做错了什么?
编辑:按要求编写 AWK 代码:
awk '{
logName=sub(/^.*\//,"",$1);
logName=sub(/\..*:/,"",$logName);
print $logName;
print $2;
logName=$logName $2;
print $logName;
}' $file
EDIT2:已修复。不要在 awk 中调用任何 $ 变量,除非它是一个字段编号。 :)
awk '{
logName=$1;
sub(/^.*\//,"",logName);
sub(/\..*:/,"",logName);
print logName;
logName=logName $2;
print logName;
}' $file
【问题讨论】:
-
向我们展示您的 awk 代码
标签: linux awk concatenation