击:打印字符串值,结果未发现 [英] Bash: Printing string value results not found
本文介绍了击:打印字符串值,结果未发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我运行我的脚本,没有输出到终端。
这是我的code:
为((H = 1; H&4;; H ++));做
X = $(AWK -v我= H -v J = 17'FNR == I {printf的%S,附加$ J}'newiptables.log)
回声$ X
DONE
这是文件
12月26日9点17分51秒本地主机内核:IN = eth0的OUT = MAC = 00:10:6:A8:DA:68:00:90:7F:9C:50 :5A:08:00 SRC = 198.252.206.16 DST = 10.128.1.225 LEN = 313 TOS = 0×00 preC = 0×00 TTL = 64 n = 59334 PROTO = TCP SPT = 80 DPT = 56506窗口= 46535 RES = 0×00 ACK PSH URGP = 0
12月26日9点17分52秒本地主机内核:IN = eth0的OUT = MAC = 00:10:6:A8:DA:68:00:90:7F:9C:50:5A:08:00 SRC = 198.252.206.16 DST = 10.128.1.225 LEN = 1440 TOS = 0×00 preC = 0×00 TTL = 64 n = 47303 PROTO = TCP SPT = 80 DPT = 56506窗口= 46535 RES = 0×00 ACK URGP = 0
12月26日9点17分52秒本地主机内核:IN = eth0的OUT = MAC = 00:10:6:A8:DA:68:00:90:7F:9C:50:5A:08:00 SRC = 198.252.206.16 DST = 10.128.1.225 LEN = 1440 TOS = 0×00 preC = 0×00 TTL = 64 n = 47559 PROTO = TCP SPT = 80 DPT = 56506窗口= 46535 RES = 0×00 ACK URGP = 0
解决方案
你的意思是:
的awk -v我= H -v J = 17 ...
请注意 I = H
这相当于说: I = 0
看来你想说的话:
X = $(AWK -v I = $ H -v J = 17'FNR == I {printf的%S,附加$ J}'newiptables.log)
^
| ==参考变量h
When I run my script, there is no output to the terminal.
This my code:
for ((h = 1 ; h < 4 ; h++ )); do
x=$(awk -v i=h -v j=17 'FNR == i {printf "%s ", $j}' newiptables.log)
echo $x
done
This is the file
Dec 26 09:17:51 localhost kernel: IN=eth0 OUT= MAC=00:10:c6:a8:da:68:00:90:7f:9c:50:5a:08:00 SRC=198.252.206.16 DST=10.128.1.225 LEN=313 TOS=0x00 PREC=0x00 TTL=64 ID=59334 PROTO=TCP SPT=80 DPT=56506 WINDOW=46535 RES=0x00 ACK PSH URGP=0
Dec 26 09:17:52 localhost kernel: IN=eth0 OUT= MAC=00:10:c6:a8:da:68:00:90:7f:9c:50:5a:08:00 SRC=198.252.206.16 DST=10.128.1.225 LEN=1440 TOS=0x00 PREC=0x00 TTL=64 ID=47303 PROTO=TCP SPT=80 DPT=56506 WINDOW=46535 RES=0x00 ACK URGP=0
Dec 26 09:17:52 localhost kernel: IN=eth0 OUT= MAC=00:10:c6:a8:da:68:00:90:7f:9c:50:5a:08:00 SRC=198.252.206.16 DST=10.128.1.225 LEN=1440 TOS=0x00 PREC=0x00 TTL=64 ID=47559 PROTO=TCP SPT=80 DPT=56506 WINDOW=46535 RES=0x00 ACK URGP=0
解决方案
You are saying:
awk -v i=h -v j=17 ...
Note i=h
which is equivalent to saying: i=0
.
It seems that you wanted to say:
x=$(awk -v i=$h -v j=17 'FNR == i {printf "%s ", $j}' newiptables.log)
^
|== refer to the variable h
这篇关于击:打印字符串值,结果未发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文