我有一个用utf8编码的bash脚本。 在脚本中,我使用sed命令使用§作为分隔符。 现在当我运行执行此脚本sed抱怨分隔符。 如果我使用正常字符作为ex @的分隔符,那么一切正常。 我已经在腻子中看到脚本[在putty中设置utf8],字符显示正常。 另外从locale命令显示的Linux默认字符集显示 LC_CSET=en_US.UTF-8 可能出了什么问题? 早些时候,我曾经有shell脚本windows-1252编码,这用于工作。
我正在使用Sed来查找并replace文件中的string。 这是第一次使用它,所以我可能做错了, 我有一个名为“test.properties”的“root”所拥有的文件,我想用“cat”replace“world”。 所以我运行这个命令: sudo sed s/world/cat/ <test.properties >newtest.properties 它工作的很好,但是当我想写这样的SAME文件: sudo sed s/world/cat/ <test.properties >test.properties 它说“-bash:test.properties:权限被拒绝”,但我使用“sudo”,为什么被拒绝?
我有一个PHP应用程序在日志文件中生成大量的警告和通知。 我正在修理这些。 我希望能够修复最频繁发生的第一次,以最大限度地提高我的更改对日志文件大小的影响量。 我怎样才能使用grep / sed / regex etc.find哪些通知是最频繁的? 自从时间戳开始以来,我无法比较整个行,但也许是“ 在线… ”的列表/分组/sorting? 替代文字http://i26.tinypic.com/2805zxy.png
我有一个简单的脚本在FreeBSD机器上运行,代码如下: #!/bin/sh `sed -i .bak '\:#start 172.0.0.3:,\:#end 172.0.0.3:d' /usr/local/etc/racoon/racoon.conf` echo $? 它应该删除两个模式之间的文本块。 问题是,如果我直接从shell运行sed命令,它会工作,如果我运行脚本的返回码是0。 为什么?
我想抓住tok98和5678之间的文本并将其转储到文件中。 如果tok98和5678在同一行我可以使用这个 sed -n 's/.*\(tok98\)\(.*\)\(5678\).*/\2/p' testfile.txt > text.dmp 但是当令牌垂直间隔不工作,我怎么能重写这个sed在这里工作 $ cat testfile.txt do with > 9 tok98 fdf df s df sd f sd v dvsdv dvf sd vs vs dv sdfsd 2323 2323 232 {} sfdf sd fs df s df sf 5678 no way = true + 50 $
在configuration文件中,我试图用PREFIX=/foobarreplacePREFIX=/jenkins 。 在(bash)命令行上,这工作正常: sed -i.bak s/PREFIX=\\/jenkins/PREFIX=\\/foobar/g /etc/default/jenkins 但是,在Puppet脚本(.pp文件)中: exec { 'Change-prefix': command => "sed -i.bak s/PREFIX=\\/jenkins/PREFIX=\\/foobar/g /etc/default/jenkins", path => ["/bin"], } 生产: err: /Stage[main]//Exec[Change-prefix]/returns: change from notrun to 0 failed: sed -i.bak s/PREFIX=\/jenkins/PREFIX=\/foobar/g /etc/default/jenkins returned 1 instead of one of [0] 如何正确地逃避sed命令? 或者是其他事情? 我也用\\\/尝试,但是这样产生: warning: Unrecognised escape sequence '\/'
我想用https://cdn1.domain.comreplace200.html文件中的http://cdn1.domain.com ,我不知道如何用sed来做。 有人可以帮我吗? sed -i '/http:/\/\cdn1/http:/\/\cdn1/' cum-comand.html sed: -e expression #1, char 8: unknown command: `\' sed -i '/http:\/\/cdn1/http:\/\/cdn1/' cum-comand.html sed: -e expression #1, char 17: extra characters after command
我是体面的bash脚本,我正在赶上正则expression式,以及一些sed用法。 学习awk仍然值得,所有的select都在那里。 意见?
我试图删除=和]字符使用一个sed命令: # echo "A=[A]" | sed s'/[=\]]/ /g' A=[A] 这个语法有什么不对吗? 我期待从sed的以下结果 # echo "A=[A]" | ….sed A [A
我尝试从下面的string中提取主机名(使用who am i创build的): username pts/0 2010-10-05 17:30 (www.example.com) 我需要一个解决scheme,如果(www.example.com)不存在,也是我在本地login的情况下也可以工作。 此外,解决scheme还必须在Mac上工作who am i返回以下string: username ttys006 Oct 5 16:47 (www.example.com) 问题是mac在date中放置空格,这使得难以使用cut 。 我认为,必须有一个解决scheme使用sed来提取子string,但我有问题搞清楚如何适当使用sed 。 更新:疯狂的方法 如果实际上存在括号,这种方法才会奏效。 如果不是,则会发生以下情况: $ who am i | cut -f2 -d '(' | tr -d ')' username ttys006 Oct 5 16:47