- bikbok
-
awk中使用shell中的变量
一: ""$var""
这种写法大家无需改变用"括起awk程序的习惯,是老外常用的写法.如:
var="test"
awk "BEGIN{print ""$var""}"
这种写法其实际是双括号变为单括号的常量,传递给了awk.
如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:
var="this is a test"
awk "BEGIN{print """$var"""}"
二: ""$var""
这种写法与上一种类似.如果变量含空格,则变为"""$var"""较为可靠.
三: export变量,使用ENVIRON["var"]形式,获取环境变量的值
例如:
var="this is a test"; export var;
awk "BEGIN{print ENVIRON["var"]}"
四:可以使用awk的-v选项 (如果变量个数不多,个人偏向于这种写法)
例如:
var="this is a test"
awk -v awk_var="$var" "BEGIN {print awk_var}"
这样便把系统变量var传递给了awk变量awk_var.
awk向shell变量传递值
“由awk向shell传递变量”,其思想无非是用awk(sed/perl等也是一样)输出若干条shell命令,然后再用shell去执行这些命令。
eval $(awk "BEGIN{print "var1="str1";var2="str2""}")
或者eval $(awk "{printf("var1=%s; var2=%s; var3=%s;",$1,$2,$3)}" abc.txt)
之后可以在当前shell中使用var1,var2等变量了。
echo "var1=$var1 ----- var2=$var2"
利用awk赋值
#!/bin/shping ip -c 3 > log.txtx=`awk "NR==7 {print $6}" log.txt`echo $x希望对你有帮助。 我已经试过了。2023-06-06 09:51:592
shell 下几种常见的变量赋值方法
就一种变量赋值方式a=b2023-06-06 09:52:052
shell脚本怎样读取文件的值,并赋值给变量
在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:read -p "input a val:" val echo $valread - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。它的语法形式一般是:read [-options] [variable...]扩展资料:Shell是一种脚本语言,常见的脚本解释器有:bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。参考资料来源:百度百科-Shell脚本2023-06-06 09:52:121
shell程序中,对用户变量赋值有哪些方式
、脚本中直接赋值 2、执行脚本时传参数2023-06-06 09:52:252
如何将awk中定义的变量传递给外部shell脚本
有两种方法: 方法一:通过环境变量,例如在终端定义环境变量var export var="abc"则在 awk 脚本中可以使用 ENVIRON 调用 printf ENVIRON["var"]方法二:通过 awk 内置变量 ARGC,ARGV,跟C/C++ 一样,但是是大写的,eg: printf ARGV[0]2023-06-06 09:52:331
awk每次处理一行,分别讲两列值附值给两个变量
参考下面的命令,可以在awk命令后通过 | 命令+tail 、head、grep组合来达到你要的效果---------------------------------------------------参考下cat、tail、head、tee:文件打印命令这些命令的语法基本上相同的:命令名 [选项] [文件],而且您可以在管道中使用这些命令。这些命令的功能都是根据特定的条件选择文件内容进行打印。cat 工具会将文件的全部内容打印到标准输出。这是最常用的命令之一。例如,您可以使用:# cat /var/log/mail/info将邮件程序守护程序日志的内容打印到标准输出[14]。cat 命令有一个非常有用的选项(-n),该选项将允许您打印行号。某些文件,如守护程序日志文件(如果相应的守护程序运行了的话)可能非常大[15],在屏幕上打印全部内容可能没什么必要。您经常只是需要看看一个文件的某几行。您可以使用 tail 命令完成这一功能。默认情况下,下面的命令将会打印 /var/log/mail/info 文件的最后十行:# tail /var/log/mail/info您可以使用 -n 选项显示文件的最后 N 行。例如,要显示最后两行,您应该执行:# tail -n2 /var/log/mail/info而 head 命令与 tail 十分相似,只是打印文件的头几行。默认情况下,下面的命令将会打印 /var/log/mail/info 文件的头十行:# head /var/log/mail/info和 tail 一样,您也可以使用 -n 选项指定要打印的行数。例如,要打印前两行,您应该执行:# head -n2 /var/log/mail/info您还可以组合使用这几条命令。例如,如果您想要只显示第九行和第十行,您可以先使用 head 命令选择文件的前十行,然后再将结果通过管道送到 tail 命令。# head /var/log/mail/info | tail -n2竖线后面的部分将选择最后两行,然后将其打印到屏幕。同样地,您也可以选择只打印文件的倒数第 20 行:# tail -n20 /var/log/mail/info |head -n1在本例中,我们让 tail 选择了文件的最后 20 行,然后将结果通过管道传送给 head。然后 head 命令将会从得到的数据中取出第一行打印到屏幕上。现在我们假定您想要将上例中的结果在屏幕上显示的同时还保存到文件 results.txt。tee 工具可以帮到我们。其语法是:tee [选项] [文件]现在,我们可以将上一命令做如下更改:# tail -n20 /var/log/mail/info |head -n1|tee results.txt我们再来举一个例子。我们想要选择最后 20 行,将其保存到 results.txt,但是只在屏幕上显示这 20 行中的第一行。那么,我们应该输入:# tail -n20 /var/log/mail/info |tee results.txt |head -n1tee 命令有一个非常有用的选项(-a),它允许您将数据追加到已有文件。让我们再回过头来看看 tail 命令。像日志这样的文件应该是在不断变化的,因为与其相关的守护程序每时每刻都在记录着它所执行的动作和发生的事件。所以,如果您想要交互地观看日志文件,您可以使用 -f 选项:# tail -f /var/log/mail/info在本例中,/var/log/mail/info 文件的所有更改都会立即打印到屏幕上。当您想要知道您系统的工作原理时,使用带 -f 选项的 tail 命令将非常有用。例如,通过查看 /var/log/messages 日志文件,您可以时刻跟踪系统信息和各种守护程序。在下一节中,我们将会看到如何将 grep 用作过滤器,以便从来自其它服务的信息中拆出 Postfix 信息。grep: 定位文件中的字符串不管是命令的名字还是缩写(“General Regular Expression Parser”)都显得非常古怪,但该命令的作用和用法却很简单:grep 将在一个或多个文件中查找给定的模式。其语法为:grep [选项] <模式> [一个或多个文件]如果列出了多个文件,将会在每一行结果的开头附加相应的文件名。使用 -h 选项可以不显示这些文件名;使用 -l 选项可以只列出文件名。模式是一个正则表达式,尽管在大多数情况下只是一个简单的单词。下面列出了最常用的几个选项:-i:进行不区分大小写的搜索;-v:反转搜索。显示不与模式匹配的行;-n:显示找到行的行号;-w:让 grep 在进行模式匹配时匹配整个单词。2023-06-06 09:52:511
linux awk命令--如何引入外部变量
用shell命令删除目录下文件,但是排除某些特殊文件,第一时间无脑从谷歌获取。 丢到脚本执行发现,并没有删除,原来rm后面命令返回结果有问题,必须事当前目录才行,脚本脱离当前目录就懵逼。那想办法改吧。 既然【 ls *.txt | grep -v test.txt 】返回的的是文件名称,那拼上目录就完事了。 使用awk拼接目录和文件: 由于【ls -l 】返回的第一行【total 272】需过滤: 过滤第一行统计信息: awk内置了一些变量可以拼接,还有常量也可以拼接,此处不表,重点提及awk作用域外的变量引用,有一下三种方式: 格式如:awk ‘{action}" 变量名=变量值 ,这样传入变量,可以在action中获得值。 注意:变量名与值放到"{action}"后面。 这种变量在:BEGIN的action不能获得。 格式如:awk –v 变量名=变量值 [–v 变量2=值2 …] "BEGIN{action}" 注意:用-v 传入变量可以在3中类型的action 中都可以获得到,但顺序在 action前面。 只需要调用:awk内置变量 ENVIRON,就可以直接获得环境变量。它是一个字典数组。环境变量名 就是它的键值。2023-06-06 09:52:581
linux 的 awk 的 $1的值 怎么导出到别的变量
a=$(awk -F: "{print $1}" /etc/passwd)echo "$a"不用cat后再通过管道传递给awk,直接用awk处理文件。因为管道符会开启一个新shell来执行后面的awk命令,从资源占用和执行效率上来说,都不如直接使用一个awk命令处理。其中,$()也可以用反引号` `来代替。2023-06-06 09:53:191
请教,初始化的变量如何带进AWK中
在BEGIN 块中赋值, 使用命令行参数 变量名=值 的形式,使用 -v 参数2023-06-06 09:53:261
shell能实现变量追加赋值吗
八如能呀怂安全保密景w2023-06-06 09:53:332
如何传递动态变量给awk的行为语句
a=1awk "{print $1,"$a"}" file这样用"隔开2023-06-06 09:53:522
awk -F u3002u3002u3002 -v u3002u3002u3002
uff1fuff1fuff1fuff1fuff1fuff1fuff1f2023-06-06 09:54:141
linux 编写一个awk脚本,针对etc/passwd/文件统计每一种shell的用户个数
awk -F ":" "{print $7,$1}" /etc/passwd|sort|grep -iE "false";printf "shell caculate: ";awk -F ":" "{print $7}" /etc/passwd|sort|grep -v false|sort -k 1 -n -r|uniq -c2023-06-06 09:54:294
awk中使用$0与shell脚本$1有冲突怎么办
awk -F " " "BEGIN{sum=0}{sum+=$1}END{print sum}" 在脚本中使用awk awk需要用到自身的内置参数 可以用进行转译2023-06-06 09:54:365
awk -vOFS = ‘ ’ -vSIZE = $SIZE
你的awk有语法错误吧,举个例子seq 10 | awk -v var=1 "BEGIN{OFS=" "}{print $1,var+$1}"seq 10的作用是输出1-10的10行数字,awk -v var=1是定义var变量,BEGIN{OFS=" "}是定义输出文本的风格符,上面的命令是输出两列,第一列是seq 10的第一列,第二列是seq 10的第一列+var的值,两列的分隔符是 ,输出结果为1 22 33 44 55 66 77 88 99 1010 112023-06-06 09:54:571
awk匹配的字符串中含有‘/’时怎么弄?
xiehuahere正解, 虽然俺没测过, hrcq89的答案跟xiehuahere差不多2023-06-06 09:55:053
怎样把用awk出来的结果与一个数字比大小
可以在awk的END中进行处理,END中的代码是awk在处理文件完成后执行的;也可以将awk语句(用反引号Tab上面的那个括起来)赋值给一个变量,变量=`awk "{处理}" 输入文件名`,然后用变量和数字去比较2023-06-06 09:55:121
怎么给bash shell当中的变量获取awk行处理后得到的值
[root@localhost ~]# ttl=$(awk "/ttl/ {print $2}" a.txt)[root@localhost ~]# echo $ttl3600[root@localhost ~]#2023-06-06 09:55:304
linux awk命令
-F选项指定分隔符,你用的是"a",所以对于第一行abcabcabcabca分割后分成以下几个域:空 | bc | bc | bc | bc对应关系为 :$1 $2 $3 $4 $5print $3打印第三个域:bcprint $2打印第二个域:bcprint $1打印第一个域:空第二行:vivi,abc,abc,abc分割后:vivi, | bc, | bc, | bc对应为:$1 $2 $3 $4打印第三个域:bc,打印第二个域:bc,打印第一个域:vivi,第三行:12345a,a---a;a分割后:12345 | , | --- | ; | 空对应为: $1 $2 $3 $4 $5打印第三个域:---打印第二个域:,打印第一个域:123452023-06-06 09:55:381
awk命令提取某行的最后一个数值
假设文件是OUTCARTS=`grep "energy" OUTCAR |tail -1 |awk "{print $5}"`echo $TS >> comment2023-06-06 09:55:553
awk命令详解
除了使用sed命令,Linux系统中还有一个功能更加强大的文本数据处理工具,就是awk。它诞生于20世纪70年代末期,这也许是它影响了众多Linux用户的原因之一。和sed命令类似,awk命令也是逐行扫描文件(从第1行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。awk命令的基本格式[root@localhost]#awk[选项]"脚本命令"文件名。awk的强大之处在于脚本命令,它由2部分组成,分别为匹配规则和执行命令。awk的主要特性之一是其处理文本文件中数据的能力它会自动给一行中的每个数据元素分配一个变量。2023-06-06 09:56:021
awk -v怎么用的?
你好,请看如下例子echo "1 2 3 4 5"|awk -vistor=100 "{if(istor==100){print $0}}"-v的后面紧跟着变量名字和对变量的赋值,在awk语句中可以直接使用此变量希望对你有帮助2023-06-06 09:56:092
我输入一个数字,想在awk里执行命令,把变量变为2进制,该如何做?
你是想输出这个二进制数呢,还是按位存储起来?写详细一点啦2023-06-06 09:56:163
shell awk语法问题求教
a 文件中包含“Time”字符串的行中,(以空格作为域分隔符)最后一个域(应该是一个时间),此时间介于10:09:00---10:11:00之间,则a置为True,否则为False,如果a为True则打印此行2023-06-06 09:56:411
awk如何匹配以#开头的字符串
awk里也可以使用变量的。假设变量为var,举例:awk -v a=$var ‘/a/{print}" test.txt在使用前赋值给awk内部变量。或者:awk ‘/"$var"/{print}" test.txt即,把变量拿到awk的单引号外面来。只要在awk的作用域外面,那就被解释器认为是python变量,而不是awk内部变量。2023-06-06 09:56:481
awk的结果怎么赋值给Shell变量
result="week(now(),-1) 49"; var=`echo $result|awk "{print substr($result,16,3)}"`; echo $var; SYSFILE_NAME=`echo "$CONTROL_FILE" | awk -F"." "{print $1}" | awk -F"/" "{print $NF}"`;2023-06-06 09:57:071
如何用awk将某一列抽出来赋值给一个变量
var=$(awk "{print $4}" 文件名)$4表示第四列,将文件第四列抽出来赋值给变量 var2023-06-06 09:57:141
利用awk赋值
#!/bin/shping ip -c 3 > log.txtx=`awk "NR==7 {print $6}" log.txt`echo $x希望对你有帮助。 我已经试过了。2023-06-06 09:57:302
shell 下几种常见的变量赋值方法
交出所有工资2023-06-06 09:57:372
Linux awk 中if怎么加变量?
var=$(awk "{print $4}" 文件名)$4表示第四列,将文件第四列抽出来赋值给变量 var2023-06-06 09:57:431
awk引用shell中变量的几种方法
一:""$var""这种写法大家无需改变用"括起awk程序的习惯,是老外常用的写法.如:var="test"awk"BEGIN{print ""$var""}"这种写法其实就是把一对单引号分成了两段单引号,中间的shell变量直接按照shell变量的引用方式即可,但是如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:var="thisis a test"awk"BEGIN{print """$var"""}" (也就是在shell变量的两边加上一对双引号即可)二:export变量,使用ENVIRON["var"]形式, (ENVIRON为awk中的内置环境变量数组)如: var="thisis a test";export $varawk"BEGIN{print ENVIRON["var"]}"三:当然也可以使用-v选项如:var="thisis a test"awk –vnvar="$var" "BEGIN{printnvar}"这样便把系统变量定义成了awk变量. 如果在awk是这种格式的话 awk "script"filename 也可以这样引用shell变量awk"script" awkvar="shellvar" filename awk"END{print awkvar}" awkvar="$shellvar" filename2023-06-06 09:57:511
如何在awk的print中使用变量
awk中使用printf和C语言的printf 用法基本是一样的都是用 printf("格式化字符串", 变量) 这种形式例如 awk "{printf ("%d ", a);} "就是输出整数a2023-06-06 09:57:581
如何在shell脚本里传递一个变量给awk
先说简单的,如果是只传递变量,有几种方法: awk "{print v1, v2}" v1=$VAR1 v2=$VAR2 input_file# 或者,这种方法不是所有的awk分支都支持 awk -v v1=$VAR1 -v v2=$VAR2 "{print v1, v2}" input_file# 或者,这种写法是最难受的 awk "{print """$VAR1""", """$VAR2"""}" input_file把变量用在正则里面的方法: awk " $0 ~ v1; {print v2}" v1=$VAR1 v2=$VAR2 input_file2023-06-06 09:58:071
awk怎么实现把print的输出打印到一个变量中
[oracle@s12071 ~]$ : | awk "BEGIN{a="A";b=sprintf("%04s",a);print b}"000A[oracle@s12071 ~]$ : | awk "BEGIN{a="AB";b=sprintf("%04s",a);print b}"00AB2023-06-06 09:58:321
在shell中变量赋值有四种方法,其中name=12的方法哇
用awk或者是cut 把指定的字段(用一定的分隔符分隔的字段)赋值给某个变量 variable=`awk "{print $n}" filename` 用cut也能实现类似的办法用awk的substr函数把指定字段的某几个字符赋值给variable,看下边的例子: ifconfig |grep "inet addr" ...2023-06-06 09:58:391
linux 的 awk 的 $1的值 怎么导出到别的变量
a=`cat /etc/passwd | awk -F ":" "{print $1}"`2023-06-06 09:58:532
在shell中变量赋值有四种方法,其中name=12的方法哇
用awk或者是cut把指定的字段(用一定的分隔符分隔的字段)赋值给某个变量variable=`awk"{print$n}"filename`用cut也能实现类似的办法用awk的substr函数把指定字段的某几个字符赋值给variable,看下边的例子:ifconfig|grep"inetaddr"...2023-06-06 09:59:001
shell脚本如何获取指定文件的修改日期并赋值给变量
modify_date=`ls -l file1|awk "{print $6,$7;}"`需要修改一下file1文件名2023-06-06 09:59:071
awk怎么匹配一个变量
直接这样就可以了:awk "/"$aa"/" aaa.txt2023-06-06 09:59:131
echo输出 赋值给变量
index1=`echo $line|awk "{print index($line, "=")}"`2023-06-06 09:59:201
linux 编写一个awk脚本,针对etc/passwd/文件统计每一种shell的用户个数
你的理解错误了begin{fs=":"}表示以:分隔字段第一句,如果第一个字段含有root,输出该行~表示匹配~/root/表示匹配root字符串$1~/root/表示第一个字段匹配root字符串如果true,defualtprint第二句,如果第一个字段非空,输出该行(而不是你说的输出第一个域)2023-06-06 09:59:282
awk如何匹配字符串变量
直接用 <, ==, > 比较符比较。看下面两个例子:echo | awk "a="test";b="test";if(a==b) print "a equals b""echo | awk "a="test";b="test123";if(a<b) print "a is less than b""2023-06-06 09:59:341
shell awk 内置函数split怎么调用外部变量
awk将变量传给shell可以用eval, 如 eval $(awk "BEGIN{print "a=ggg b=3"}")则shell变量$a就是ggg,shell变量$b就是32023-06-06 09:59:531
Shell怎么引用字符串当变量
直接将字符串赋值给变量即可如a="1 2 3 4 5 6"echo $a2023-06-06 10:01:302
用shell提取txt文本中的前4个字母,赋值到另一个变量
head应该可以提取的,help一下,看看那个参数是指定字符长度的提取第二行的前4个,可以用sed打印出第二行,然后传递给head或者用awk2023-06-06 10:01:462
awk的使用 第八部分 awk如何读取命令行的参数
print ARGV[i];# 依次印出awk所记录的参数 }u2019 $* 执行结果如下: [root@myfreelinux pub]# bash analyse.awk first-arg second-argawkfirst-argsecond-arg解释说明:ARGC,ARGV[ ]是awk的内建变量。 ARGC :是一整数,代表命令行上除了选项-v, -f 及其对应的参数之外所有参数的个数。 ARGV[ ] 是一字符串数组,ARGV[0],ARGV[1],。。。ARGV[ARGC-1]分别代表命令行上相对应的参数。 比如在这里执行的命令[root@myfreelinux pub]# bash analyse.awk first-arg second-arg,ARGC的值是3,ARGV[0]是awk,ARGV[1]的值为first-arg, ARGV[2]的值是second-arg。 再比如#awk -vx=21-f program fir-data sec-data和#awk u2018{ print $1 ,$2 }u2019fir-data sec-data 这两条ARGC 值都是3,ARGV[0]是awk,ARGV[1]是fir-data,ARGV[2]是sec-data,命令行上的-f program, -vx=21u2033,程序部分u2019{ print $1, $2}u2019 都不会被列入ARGC和ARGV[ ]中。 awk 利用ARGC 来判断要打开的数据文件的个数,但是用户可以强行更改ARGC的值;比如将ARGC的值被用户设置为1,那么awk将被蒙骗,误以为命令行上没有数据文件文件, 所以不会以ARGV[1],ARGV[2]等作为文件名来打开文件并读取数据;但是在程序中可以使用ARGV[1],ARGV[2]等变量来取得命令行上数据文件的数据。 现在有一个awk程序内容如下: [root@myfreelinux pub]# cat test1.awk #!/bin/awk -fBEGIN{for(i=0;i<ARGC;i++) print ARGV[i];}执行以上程序的结果如下: [root@myfreelinux pub]# awk -f test1.awk arrive.dat today_result1awkarrive.dattoday_result1 加入将test1.awk的内容更改成test2.awk的内容如下: [root@myfreelinux pub]# cat test2.awk #!/bin/awk -fBEGIN{number=ARGC;#用number 记住实际的参数个数 ARGC=2;#设置ARGC=2,awk将以为只有一个资料文件 for(i=0;i<ARGC;i++) print ARGV[i];}执行并查看运行结果: [root@myfreelinux pub]# awk -f test2.awk arrive.dat today_result1 today_result2awkarrive.dat这个时候会发现,虽然同样ARGC=3,但是人为的设置ARGC=2,后,awk在执行的时候,只认为有一个参数arrive.dat。 将test2.awk修改成以下内容: [root@myfreelinux pub]# cat test3.awk #!/bin/awk -fBEGIN{number=ARGC;ARGC=2;for(i=0;i<ARGC;i++) print ARGV[i]; for(i=ARGC;i<number;i++) print ARGV[i];}运行并查看运行结果如下: 显然,通过修改ARGC可以修改awk能够识别的参数的个数,但是实际存在的ARGV的内容,仍然可以访问的。比如在这里ARGC设置为2后,awk只能打开ARGV[1]=arrive.dat,但是我们可以使用ARGV[2],ARGV[3]取得命令行上的参数today_result1,today_result2。2023-06-06 10:01:521
每日一条linux 命令 : awk
一次读取一行文本,按输入分隔符进行切片,切成多个组成部分,将每片直接保存在内建的变量中,$1,$2,$3....,引用指定的变量,可以显示指定段,或者多个段。如果需要显示全部的,需要使用$0来引用。可以对单个片段进行判断,也可以对所有段进行循环判断。 其默认分隔符为空格 awk [options] "program" FILE...... [options]说明 主要有两种模式 1、 awk [options] "scripts" file1,file2..... 在这种模式中,scripts主要是命令的堆砌,命令之间用 分号 分割;对输入的文本行进行处理,通过命令 print,printf 或是输出重定向的方式显示出来,这里经常用到的知识点是:awk的内置变量,以及命令print和printf的使用 2、 awk [options] "PATTERN{action}" file,file2..... 在这种模式中,最重要的是5种模式和5种action的使用,以及awk的数组的使用和内置函数 其格式化输出: printf FORMAT,item1,item2.... 例子: awk "{printf "%-8s %-8s %-8s %-18s %-22s %-15s ",$1,$2,$3,$4,$5,$6}" netstat.txt 格式符 修饰符 输出重定向 awk [option] "PATTERN{action}" file1,file2....2023-06-06 10:01:591
shell awk操作如何使结果赋值进数组
搞不清楚你到底想问啥艾,awk是可以赋值进数组的,比如将三行中的最后生给弄到数组A中:tail -1 lftpFileList.txt | awk "{split($0,A," ");}"这就全进数组里了2023-06-06 10:06:571
shell脚本如何获取指定文件的修改日期并赋值给变量
ls --full-time myfile | cut -d" " -f6-7 | cut -c1,2,3,4,6,7,9,10,12,13,15,16,18,19用你的文件名替换myfile,其他照抄。2023-06-06 10:07:041
shell 变量赋值
pavg=$(cat ${ip}pavg.tmp|awk -F / "NR==9{print $4}")这样不行吗, 不要echo试试看你下面那个中方法 也对 无所谓的 小改即可2023-06-06 10:07:211