sed的详细工作原理??patten space和holding space是如何工作呢??谁能解释下?
by 027xiatian - Shell - 2007-05-14 21:45:57 阅读(1681) 回复(2)
例如:sed -n -e '/\\\n$/N' -e 's/\\\n/ /p' my.txt 该语句是想把以\结尾的行和下行合并起来,但是不起作用,如果sed读入原始数据后,执行N命令,应该是当前缓存有两行数据了,接下来的命令s如果作用于这两行数据的话应该是会起作用的啊,郁闷,有这么多帖子,没有详细说明sed工作原理的啊。
字符串反转 sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' echo 1234567890|sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' 0987654321
昨天boss分配一个任务,要从500多个文件(一个目录下的*.rdf)里提取一些信息(每个文件里提前一串字符,很有规律的),然后在某个文件phone.xml的每个节点内添加一行(一个子节点罗),该行的内容就是提取出来的信息,*.rdf的文件名称(不包括后缀)与phone.xml的节点是有严格对应关系的。 当初我考虑到这是一个很有规律的事情,而且我又刚好在学习shell,所以决定用shell脚本来折腾一番。谁知道功力太差,到现在还没弄出来。改写...
find /HWBOSS/ -name finished -type d |sed 's/^\/HWBOSS\/\(.*\)$/\1/' |while read DIR 中的sed 's/^\/HWBOSS\/\(.*\)$/\1/' 怎么理解
[code] $echo "2a" | sed 's/[0-9][a-z]//' -------1 $echo "[" | sed 's/[0-9][a-z]//' ------2 [ $echo "[edji][dfj]" | sed 's/[^][]\+//g' ------3 [][] $echo "[edji][dfj]" | sed 's/[^[]]\+//g' -----4 [edj[df [/code] [0-9][a-z]: 1 : 0 1 ... 9 a b ... z 3 : 除了 ] [ 之外的字符 2 : 为何不解释为: 1 2 ... 9 ] [ a b ... z 呢? 4 : 这个又作何解 awk 也出现...
显示包含“AAA”的段落 (段落间以空行分隔) sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;' 相当于 sed ':a;/./{H;$!d;};$bb;/^$/!ba;:b;x;/AAA/!d;'(自己的意思) 不明白 sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;' 难道‘ {}’具有循环的作用? 上式有循环吗? [ 本帖最后由 爱知 于 2008-8-11 16:08 编辑 ]