本帖最后由 Fock3r 于 2014-09-03 17:19 编辑 seq 10 >1.txt 现在我想要合并1.txt的第2-8行为1行,我写的命令如下: sed -n '2,8p' 1.txt | sed ':a;N;s/\n/ /;ta' 结果如下: 2 3 4 5 6 7 8 但是我想直接对文件进行修改,应该怎么办? sed -i '2,8;:a;N;s/\n/ /;ta' 1.txt 哪里错了? 输出结果: sed: -e expression#1,char 4: unknown command: ';' 2,8后面的分号去掉也不行。 求教大神~~~~~~~ --------------------...
by Fock3r - Shell - 2014-09-03 16:52:38 阅读(3507) 回复(13)
想匹配at和lp两行,然后修改,at和lp是或者的关系,类似于egrep "at|lp" 用如下脚本是at和lp之间都匹配,请问如果只匹配at或者lp如何写,谢谢! sed -i '/at/,/lp/ s:/sbin/nologin:/bin/bash:g' /etc/passwd
a #begin #end b #begin #end c #begin #end d #begin 1 2 3 #end 我想把#begin和#end之间没有任何内容的行给删掉,不知道sed如何删除? 实现出来的效果为 a b c d #begin 1 2 3 #end
手头有一份sed高级功能学习文档,其中一部分的内容是: D命令: 删除命令D是删除命令d的多行形式,区别在于d删除模式空间的内容并读入新行,从而在脚本顶端重新使用编辑方法。 D只删除多行模式空间的第一个嵌入的换行符以前的内容,它不会导致读入新行,相反,它返回到脚本的顶端,将这些指令应用于模式空间剩余的内容。 示例: # 将多个空行减少到一个空行,使用d命令版本 /^$/{ N /^\n$/d } 测试文件如下: This line is f...
我想把C语言函数入口处添加打印信息,如下所示: int fun() { int i; .... } 改成这样: int fun() { int i; ENTER; .... } 用如下命令 sed -e '/^{/,/^[ \t]*$/s//&\n\tENTER/' test.c > test.c.bak 可是生成的结果却多了一个ENTER,为什么会这样呢? int fun() { ENTER int i; ENTER .... }
我知道。用sed可以删除多行。但加入变量后就出错了。 如下: sed -i '3814d' imapd.log sed -i '3814d;3815d' imapd.log sed -i "$num"d imapd.log ........................... 如果加入多个变量....
文本截取如下: Consult Section 3.1 in the Owner and Operator Guide for a description of the tape drives available on your system. 多行匹配以下内容: Ower and Operator Guide 使用以下sed脚本为何不能匹配上述内容? /Owner/{ N /Owner\nand\nOperator\nGuide/p }
在code中有 MACRO_NAME("name") 如果这两个在同一行还可以 如果变成这样 MACRO_NAME( "name" ) 就不好处理, 我现在的想法是要把MARCO_NAME 和name用shell脚本抽取出来 做成MACRO_NAME name的格式 请高手指点~~~~
由于是外行 所以 请教下 谢谢 下面的多行 如何合并 2009-9-1 8:47:47 Failure woaini 2009-9-1 8:47:45 Failure 192.168.16.225 2009-9-1 8:40:37 Failure 2009-9-1 8:40:37 Failure pppp 192.168.17.5 我想合并为如下格式 2009-9-1,8:47:47,Failure,woaini 2009-9-1,8:47:45,Failure,,192.168.16.225 2009-9-1,8:40:37,Failure 2009-9-1,8:40:37,Failure,pppp,192.168.17.5 主要用来SQL LOADR 导入ORACLE 谢谢了