[code] filename=s.dat new_user="NEW" unused_user="UNUSEED" useable_user="USEABLE" i=0 while read name type do tmp=`echo $type|sed 's/\r//g'` if [ "$tmp" = "NEW" ] then sed "s/USER/$name/" t.dat fi done < $filename[/code]每次读都不读最后一行数据,但是如果我在在后一行敲回车换到一个空行后,最后一行就可以读出来。 请指教一二,好久好久没看shell了,哎。
by 秋池飞叶 - Shell - 2011-05-03 10:52:34 阅读(3644) 回复(3)
待处理文件为 $cat file.txt aaaa bbbbb ccc ddd shell变量为 $echo $var1 ccc $echo $var2 eee 1.命令行用法, sed可以使用shell变量 $sed -e "s/$var1/$var2/" file.txt aaaa bbbbb eee ddd 2.sed脚本用法,sed没有使用shell变量 $cat file.sed s/$var1/$var2/ $sed -f file.sed file.txt aaaa bbbbb ccc ddd file.sed改为: s/'"$var1"'/'"$var2"'/ 也不能使用shell变量,晕了!哪里错了?请指教
我想替换某一行的字符为变量,希望可以多次执行。 比如1.sh中某一行的内容 hello one/ok/ok/1 把1替换为变量M 写个sed scripts,希望每次都可以进行替换,即变量M可以每次执行后都可以替换。 我用sed.sh read M sed -i /^hello/s/1/$M 执行后可以把1变为2 ,但是下次执行的时候输入一个数值就无法进行替换了,因为再次无法匹配了。 我想用替换行的想法, 最后一个字符用$M代替,请赐教。
比如: 我有一个shell变量 aa="This is a test;\ " 我如何在文件的第50行后增加这个shell变量的值,使文件变为: ....... This is a test;\
本人新手想写个shell脚本 其中一段内容想替换某文件中某一行文字为变量但用sed未能成功请大家指点。主要问题是行尾符$和变量符$运行不成功。 具体如下文件abc中有一行 M=50 。想将其替换为M=$M2, 对M2做个循环让M2 5-8 我写的如下 #!/bin/bash for ((M2=5; M2<=8; M2=M2+1 )) do sed -i "s/M= *$ / M = $M2/g" abc done #上一行运行有一点问题 我意思是想把“M=”整行替换掉。第一个$是行尾的意思。但是执行后程序是...
像这样 原来的 193.116.157.195:80 #123.com 09-06 22:38:26 59.51.38.33:9415 #123.com 09-06 22:38:26 98.15.188.145:8085 #123.com 09-06 22:38:24 改变后的 193.116.157.195:80 #123.com 09-06 22:38:26 3497239 59.51.38.33:9415 #123.com 09-06 22:38:26 23ur9f9 98.15.188.145:8085 #123.com 09-06 22:38:24 04u04t 这样的搞很久没搞出来,谁帮一下,谢谢。
文本内容(LOG_FILENAME): err件数 : 1 send件数 : 17 err件数 : 2 send件数 : 16 如何分别取得1和17 并取得3,4 行的内容。 err_cnt=awk '/ err件数 : /{print $2}' LOG_FILENAME msg=sed -n '3,4p' LOG_FILENAME 这两个写法都会报错 直接写汉字或是全角空格在shell中会报错,有没有直接取得数字的方法。
如何删除文件的最后一行,我收集了6种方法,如:sed -i '$d' file 删除文件最后一行 1. tail -n 1 file 2. tail -1 filename 3. sed -n '$p' filename 4. "awk 'END {print}' file " 5. ed file$ d . w ! 6. sed -i '$d' file (注:方法1234都没有对原文件进行修改) 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2016/showart_15029.html