对bash / Linux来说很新鲜,我试图做以下事情 我有一个带有主机名和其他信息的csv host1.servers.com,serverA,location host2.servers2.farm.com,serverb,location a.servers.farm.farms.com,serverc,location 我需要用(点)replace第一行的最后一个时间段,但是我用sed尝试过的所有内容都不起作用。 我可以通过削减然后执行替代来完成,但是我失去了剩下的领域 我怎样才能运行sed,所以当我运行剪切-d','-f 1 | sed commad时,我不会丢失其他两列 所以它应该看起来像这样 host1.servers(.)com,serverA,location host2.servers2.farm(.)com,serverb,location a.servers.farm.farms(.)test,serverc,location 谢谢
我需要sed删除行的第一个和最后一个字符作为源实例 (192.168.3.0) 结果 192.168.3.0 尝试这种方式: sed 's/^.\(.*\).$/\1/' 但是它也删除了0个字符 如何避免这种行为?
我想用sed (stream编辑器)replace一个string,但是我得到错误抛出。 可能是因为我没有正确使用string,因为符号。 我试图replace下面的string: <VirtualHost |IP|:|PORT_80| |MULTI_IP|> 同 <VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|> 在名为virtual_host2.conf的文件中 当我尝试几件事情的时候,我总是会得到如下错误: sed: -e expression #1, char 90: unterminated `s' command sed: -e expression #1, char 20: unknown option to `s' 我不是那种经验丰富的sed ,但我可以正常replace文本string。 但是我认为是因为当前string中的符号,比如| , <和>它不会像我所愿。 有人可以给我一个工作的例子,如何取代上述? 或者把我指向正确的方向。 我自己尝试了以下内容: sed -i 's<VirtualHost |IP|:|PORT_80| |MULTI_IP|>/<VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|>' /virtual_host2.conf sed -i 's|<VirtualHost |IP|:|PORT_80| |MULTI_IP|>|<VirtualHost […]
好吧,所以我很困惑,没有想法。 我试图用新的IP地址replace所有的旧IP地址。 find -type f | grep \.php$ | xargs sed -r -i "s/(\'|\")(localhost|127.0.0.1|10.0.32.4|10.0.32.5)(\'|\")/\"10.0.32.165\"/g" 我试图find所有的PHP文件,并用10.0.32.165replace下面的任何一个(localhost,127.0.0.1,10.0.32.4,10.0.32.5)。 find * | grep \.php$ | xargs egrep "(\'|\")(localhost|127.0.0.1|10.0.32.4|10.0.32.5)(\'|\")" 第一个命令运行后,我想确保没有旧值的痕迹,所以我运行上面的命令,但不幸的是返回 siteeval/application/libraries/fetcher.url.class.php: $this->host = "10.0.32.4"; 有人看到我做错了什么? 或者也许可以让我成为一个更好的方式做到这一点?
我有一个shell文件,需要在php文件中执行一些文本的replace。 需要更换的线路是: $database = $db."_db"; 实际的sed命令需要包含一个variables,所以不知道我应该逃避什么,在哪里? #!/bin/sh sed -is/$db."db"/$DATABASE/ mysql_connect.php 谢谢。
我经常遇到黑客攻击的网站的问题。 Usualy他们最终在不同的文件中插入脚本。 有没有一种方法,在Linux上,search这个内容,并自动删除它? Usualy这个内容从这个开始,结束于这样的事情。 <!–2d3965–><script type="text/javascript" language="javascript"> </script><!–/2d3965–> 是否有可能使用某种组合的grep来search包含这个内容的文件,然后将其传送给sed以删除所有内容 至
自从我在这里发布一个问题已经有一段时间了。 需要一些assistancew让我的sed工作。 我已经尝试了各种forms的sed选项,但似乎无法得到这个工作。 我有一个文件,其中有“192”*,并需要任何types的“192”类似的IP地址,所有删除,但我需要从字面上保持一切。 东西看起来像: + : root : 192.,local,10. + : root : local,192. + : root : local,192.,10. + : root : local,10.33.45.34,192.168.22.100 + : root : local,192.168.22.100,10.33.45.34 + : root : local,192.168 + : root : local,192.168,10. 项目的我试过了: sed -e 's/,192.*$//g' -e 's/,192.*,//g' -e 's/192.,//g' sed -e 's/,192.*$//' -e 's/,192.*,//' -e 's/192.,//' […]
我有一个input: 1 2 3 4 5 6 7 8 我想从这个input中只检索N个第一行和M个最后一行。 例如,如果N是2,M是4,我想要的结果是: 1 2 5 6 7 8 线可以重叠,所以如果N是6,M是4,我希望输出等于我的input。 我曾尝试使用awk,没有运气: cat input | awk "{if (NR<2 || NR>count – 4) {print}}"
我想知道为什么下面的命令不起作用: sudo find . -name index.htm | xargs -0 sudo sed -i 's/pattern1/pattern2/g' 当分别运行这两个命令时,它们按预期工作, findfind了所有需要改变的文件, sed根据正则expression式正确地replace了文本(显然,当我单独运行sed命令时,我提供了一个文件名作为参数) 。 当与xargs -0一起运行时,我得到了 sed: ./index.htm ./folder1/index.htm ./folder1/subfolder2/index.htm … … ./lastfolder/index.htm: No such file or directory 我结束了使用 sudo find . -name index.htm -exec sudo sed -i 's/pattern1/pattern2/g' {} \; 它工作得很好,我只是好奇,为什么使用xargs不工作….
我想更新 <MySettingsSettings enabled="false" logFilePath="E:\server.log" /> 至 <MySettingsSettings enabled="true" logFilePath="D:\server.log" /> 我怎样才能通过sed做到这一点? 或者有没有其他的方式来更新在Windows服务器?