下面是个脚本 set -x prstat -a>tmp & pid=`echo $!` sleep 1 kill -9 $pid First=`cat tmp |awk '($1=="NPROC"){ print NR+1 }' |head -1` Second=`cat tmp |awk '($1=="Total:"){ print NR-1 }' |head -1` cat tmp |sed -n '$First,$Second p' cat tmp |sed -n '17,20 p' sed中加入变量就不可以,而数字就可以!请各位大侠指教如何解决sed中的变量问题
目的:在shell中,用sed在/tmp/file.txt文件取出包含在字符fist和字符end之间的所有的行 命令:sed '/fist/,/end/w /tmp/a.txt' /tmp/file.txt 问题:在#提示符下,直接执行上面的命令是正常的,/tmp/a.txt文件中的内容是取出fist与end之间行的内容。 但将该语句放置在B shell脚本中,然后在#下执行该脚本,但一直取不出东西来,也没有报错,/tmp/a.txt中一直没有取出内容 我担心语句有问题,就换一种方式来写:m...
我在shell中定义变量: [code]$LOG=/app/app.log[/code] 并执行如下查找替换 [code]sed -n 's/.*/&$LOG\/gp' file [/code] file中内容为 [code]1 2[/code] 目标查找结果为: [code]1/app/app.log 2/app/app.log[/code] 实际结果为: [code]1$LOG 2$LOG[/code] 因此想知道如何在shell的sed替换中进行变量引用。谢谢! .
操作系统 linux as 3.0 文件1 名称: eth0 内容: IP=1.1.1.1 NETMASK=255.255.255.0 文件2 名称:IP.TXT 内容:218.8.8.8 文件3 名称:NETMASK.TXT 内容:218.8.8.254 问题:如何将文件1中“IP= ”后面的内容 替换为文件2中的内容,将“NETMASK=”后面的内容替换为文件3中的内容
[root@Redhat etc]# echo c.a.o. | sed 's/\([^.]*\)\./\/\1*/g' /c*/a*/o* 能解释以下后面sed的命令是怎么实现这个功能的么? sed 's/\([^.]*\)\./\/\1*/g'其中 \([^.]*\)\.截取不是以.开头的字符所有字符,直到遇到.字符 中间那一串是什么意思啊?好像是可以循环处理。即 \/ 后面\1*/g是用第一个域来替换整个字符串 请高手指教。
如:文件a.c的第二行是 #define SIZE 123 先需要在shell脚本中用sed命令将a.c的第二行size的值替换为shell中变量abc的值.该怎么写呢?
sed 命令中的变量替换问题: # i=23;sed -e '/seq/c\for i in $(seq 1 $i);' myscript.sh |grep seq for i in $(seq 1 $i); 我如何得到:for i in $(seq 1 23); 多谢!