我有以下内容:voidfunction_1(){//something(takingonly1line)}->INSERTLINEHERE使用sed,我想在INSERTLINEHERE标签处插入一行。最简单的方法应该是:查找文本“function_1”跳过3行插入新行但是没有一个已知的sed选项可以完成这项工作。sed'/function_1/,3anew_text在“function_1”之后插入new_textsed'/function_1/,+3anew_text在“function_1”之后的接下来3行中的每一行之后插入new_textsed'/function_1/N;N;N
我写了一个文件处理程序,现在它需要从一个压缩文件中读取(.gz解压后的文件可能有2TB大),是否有像(zcat/cat)这样的压缩文件的sed等价物,或者什么是有效执行以下操作的最佳方法ONE=`zcatfilename.gz|sed-n$counts`$counts:countertoread(逐行)上述方法可行,但对于大文件来说速度很慢,因为我需要读取每一行并在某些字段上执行匹配。谢谢编辑虽然没有直接帮助,但这里有一组zcommandshttp://www.cyberciti.biz/tips/decompress-and-expand-text-files.html
我有bash脚本,可以像这样修改文件sed-i"/helloworld/d"/etc/postfix/virtual我从网络应用程序运行了这个脚本。sed命令在该目录中创建临时文件,但运行Web应用程序的用户无权在该目录中创建文件。我不想为该文件夹的用户提供更多权限。是否可以为sed命令指定临时文件位置?我是linux的新手,如果我的问题太简单但我没有找到任何解决方案,我很抱歉。谢谢! 最佳答案 必须通过临时文件修改文件,这实际上是sed正在做的,但它缺少权限。在处理这种情况时,我们只是手动执行此过程。##TEMPFileTFILE
我有一个很长的sed命令sed-i's/appendroinitrd=initrd.imgquietsplashnbdport=2000/appendroinitrd=initrd.imgquietsplashnbdport=2000video=LVDS-1:d/g'/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default能否将它分成几行以使其更清楚地说明它的作用?例如像什么?sed-i's/appendroinitrd=initrd.imgquietsplashnbdport=2000/appendroinitrd=initrd.imgquie
假设我有这段文字:BEGINhelloworldhowareyouEND如何在linux中使用sed命令将其转换为波纹管文本:BEGINfine,thanksEND 最佳答案 $catfileBEGINhelloworldhowareyouEND$sed-e'/BEGIN/,/END/c\BEGIN\nfine,thanks\nEND'fileBEGINfine,thanksEND/BEGIN/,/END/选择以BEGIN开头并以END结尾的文本范围。然后使用c\命令将所选范围替换为BEGIN\n很好,谢谢\nEND。
是否有更DRY的方式来编写以下命令(将它们放在bashshell脚本中):sudosed-i's/^#PermitRootLoginyes/PermitRootLoginno/'/etc/ssh/sshd_configsudosed-i's/PermitRootLoginyes/PermitRootLoginno/'/etc/ssh/sshd_configsudosed-i's/^#PermitEmptyPasswordsyes/PermitEmptyPasswordsno/'/etc/ssh/sshd_configsudosed-i's/PermitEmptyPasswordsyes
sed-i'/first/iThislinetobeadded'在这种情况下,如何在搜索模式时忽略大小写=first 最佳答案 您可以使用以下内容:sed's/[Ff][Ii][Rr][Ss][Tt]/last/g'file否则,你有/I和n/i标志:sed's/first/last/Ig'file来自男人sed:IiTheImodifiertoregular-expressionmatchingisaGNUextensionwhichmakessedmatchregexpinacase-insensitivemanner.测试$c
我注意到我的目录中有很多文件,名为“sedAbCdEf”之类的。为什么要创建这些文件?这些在脚本运行后有任何值(value)吗?我可以将这些文件发送到其他位置吗?/tmp/?更新:我检查了脚本,直到找到一个制作文件的脚本。这是一些示例代码:#!/bin/basha=1b=`wc-l>file4.txtecho"Replaced"$i"with"$j""$c"times("$a"/"$b")."fiecho$i"notfound("$a"/"$b")."a=`expr$a+1`donedonedone 最佳答案 为什么要创建这些文件?
我目前正在使用's/string/new_string/g'浏览一些CSV文件,但是在以下情况下我遇到了困难:我想替换'192.168.0.11'的实例,但它也捕获'192.168.0.111'的实例。如何确保sed只抓取'192.168.0.11'而不是'192.168.0.111'?显然,我必须对许多变量重复此操作,因此我们将不胜感激易于扩展的内容。谢谢! 最佳答案 我不确定您使用的正则表达式是什么,但是如果您想要与“192.168.0.11”完全匹配,您可以使用:s/\//g\强制完全匹配。
我有一个包含以下内容的文件:foo: bar1foo: bar2foo: bar3foo: bar4foo: bar5我想删除链“foo:”以便文件保留:bar1bar2bar3...我正在尝试:$sed's/foo: /'file.txt但是它说:sed:-eexpression#1,char15:unterminated`s'command有什么帮助吗?贾维 最佳答案 你需要:$sed-r's/^foo: //'file.txt