脚本sed
㈠ shell脚本sed命令如何使用变量替换掉包含指定字符串的整行
#先将包含指定字符串的整行打印到变量tmp
tmp=$(sed -n '/${zip}/p' 文本名)
#然后将文本中这一整行字符串替换为你想要修改的字符串
sed -i 's/${tmp}/${zip}/g' 文本名
㈡ sed问题。shell脚本下的sed有点奇怪,求解答
#!/bin/bash
STRING="strncpy(orderInfo.szParam,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);szMemo"
cat1.txt|whilereadline
do
param=`echo$line|awk'{print$1}'`
memo=`echo$line|awk'{print$2}'`
echo$STRING|sed"s/szParam/$param/;s/szMemo/$memo/"
echo$dst
done
1.txt 内容:
001002003004
aabbccdd
输出:
strncpy(orderInfo.001,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);002
strncpy(orderInfo.aa,param.getString("szParam").c_str(),sizeof(orderInfo.szParam)-1);bb
这个语句有问题:
echo$STRING|sed"s/szParam/$param/;sed/szMemo/$memo/"
我改成:
echo$STRING|sed"s/szParam/$param/;s/szMemo/$memo/"
或者
echo$STRING|sed"s/szParam/$param/"|sed"s/szMemo/$memo/"
㈢ SED是什么
SED
sed 是一个非交互式上下文(context)编辑器,它被设计在下列三种情况下发挥作用:
1) 编辑那些对舒适的交互式编辑而言太大的文件。
2) 在编辑命令太复杂而难于在交互模式下键入的时候编辑任何大小的文件。
3) 要在对输入的一趟扫描中有效的进行多个‘全局’(global)编辑函数。
因为每次只把输入的某些行驻留在内存中,并且不使用临时文件,所以可编辑的文件的有效大小,只受限于输入和输出要同时共存于次级存储的要求。
可以单独的建立复杂的编辑脚本并作为给 sed 的命令文件。对于复杂的编辑,这节省了可观的键入和随之而来的错误。从命令文件运行 sed 高效于作者所知道的任何交互式编辑器,甚至包括能用预先写好的脚本驱动的编辑器。
相较于交互式编辑器而言,根本性的损失是缺乏相对地址(由于操作是每次一行的),和缺乏对命令如期运行的立即验证。
sed 是 UNIX 编辑器 ed 的直系后代。由于在交互式和非交互式操作之间的差异,在 ed 和 sed 之间已经有了可观的变化;甚至 ed 的惯常用户都会经常感到惊讶(并可能气愤),如果他们没有阅读本文档的章节 2 和 3,就草率的使用 sed 的话。在两个编辑器之间最显着的家族性共同之处,在于他们所识别的模式(‘正则表达式’)的种类;匹配模式的代码可以从 ed 的代码几乎原封不动的复制过来,在章节 2 中对正则表达式的描述就是从 UNIX Programmer’s Manual[1] 几乎原封不动的复制过来的。(代码和描述都是 Dennis M. Ritchie 写的)。
㈣ sed脚本问题:紧急,应该很简单的。 要求:每一行的字符串 xxxxxx变成 xxxxxx: xxxxxx
就是这样做的,可以用 -r 参数,这样括号不用 \ 转义了:
sed -r 's/(^.*$)/\1:\1/' filename
㈤ sed脚本问题~!
其实脚本文件可以用任何文本编辑器,只不过对于新手,这样的工具会比较难,给你
个英文学习资料吧,专门介绍这个的。
http://www.grymoire.com/Unix/Sed.html#uh-0
例子:Sed has several commands, but most people only learn the substitute command: s. The substitute command changes all occurrences of the regular expression into a new value. A simple example is changing "day" in the "old" file to "night" in the "new" file:
sed s/day/night/ <old >new
Or another way (for Unix beginners),
sed s/day/night/ old >new
and for those who want to test this:
echo day | sed s/day/night/
㈥ 关于shell脚本中的一个sed表达式问题,用于处理替换一个文件中的某些值和内容,看不懂,求指教
1、sed -i '/WirelessType/c'"WirelessType=cellular" $conf_file
答:表示把文件conf_file中含有WirelessType的行替换为WirelessType=cellular
2、sed -i '/SSID/c'"SSID=$value" $conf_file
答:表示把文件SSID中含有WirelessType的行替换为SSID=$value,其中value为变量值
3、conf_file必须在当前目录下么?
答:可以在任何目录。
4、$?表示最近一条语句的执行结果,0表示成功,其他表示失败。因此,下面的内容表示上条语句执行失败时,输出function get_value error: ssid。
if [ $? != 0 ]; then
echo "function get_value error: ssid"
exit 2
fi
希望可以帮助到你!
㈦ 脚本中sed 无法执行,显示未知命令,是不是和$f有关
for f in `ls *.csv`
do
sed -n '此处要有sed命令' $f | sort -k1 > $f.11
done
㈧ shell脚本中的sed s/ /\ /g'这个命令是啥意思
sed的替换命令格式:s/A/B/g 或者 s#A#B#g 或者 s_A_B_g#只是分隔符而已,为满足格式需要。将所有制表符\t替换为|g表示全局替换,有多少次替换多少次。
㈨ 运行一个自己写的sed脚本,为什么出现了乱码,即使代码有错也不应这样啊,查看一下编码情况,要改吗
sh -x ./append1.sed input
看看过程是哪有问题
file ./append1.sed 看看和其他正常文件的区别
vim状态在./append1.sed 里面执行:set fileformat=unix
㈩ Linux脚本用sed怎么删除第二个空格之前的内容
正则表达式是这样:
s/.+?s.+?s//
s是空白字符,你可以替换成空格(我没写空格是因为在网络页面上看不清)