Questions tagged «sed»

Sed(Stream EDitor)是POSIX环境的命令行编辑器。Sed根据编辑脚本处理一个或多个文件,并将结果写入标准输出。它是由贝尔实验室(Bell Labs)创建的,自70年代中期以来一直存在。

8
如何使用grep,regex或perl按照模式提取字符串
我有一个看起来像这样的文件: <table name="content_analyzer" primary-key="id"> <type="global" /> </table> <table name="content_analyzer2" primary-key="id"> <type="global" /> </table> <table name="content_analyzer_items" primary-key="id"> <type="global" /> </table> 我需要的是遵循引号中提取任何东西name=,即content_analyzer,content_analyzer2和content_analyzer_items。 我在Linux机器上执行此操作,因此使用sed,perl,grep或bash的解决方案很好。


12
使用sed批量重命名文件
目的 更改这些文件名: F00001-0708-RG-biasliuyda F00001-0708-CS-akgdlaul F00001-0708-VF-hioulgigl 这些文件名: F0001-0708-RG-biasliuyda F0001-0708-CS-akgdlaul F0001-0708-VF-hioulgigl 壳牌代码 去测试: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' 去表演: ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh 我的问题 我不了解sed代码。我了解替代命令 $ sed 's/something/mv' 手段。而且我对正则表达式有所了解。但是我不明白这里发生了什么: \(.\).\(.*\) 或在这里: & \1\2/ 在我看来,前者的意思是:“一个字符,然后是一个字符,然后是一个字符的任何长度序列”,但是肯定有更多的东西。至于后面的部分: & \1\2/ 我不知道。
87 bash  shell  sed  file-rename 

2
使用jq解析JSON字符串
我试图jq解析一个JSON结构,如: { "a" : 1, "b" : 2, "c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n" } 也就是说,JSON中的元素是带有转义json的字符串。 所以,我有一些类似的东西 $ jq [.c] myFile.json | jq [.id] 但这崩溃了 jq: error: Cannot index string with string 这是因为.c的输出是一个字符串,而不是JSON。如何获得jq解析此字符串? 我最初的解决方案是使用sed将替换所有的逃生字符(\":\",\",\"和\"),但凌乱的,我认为有内置的方式jq做到这一点? 谢谢! 编辑:另外,这里可用的jq版本是: $ jq --version jq version 1.3 我想我可以根据需要更新它。
87 json  string  sed  escaping  jq 

3
sed中的“保留空间”和“模式空间”的概念
我对sed中的两个概念感到困惑:保持空间和模式空间。有人可以帮忙解释一下吗? 这是手册的摘要: h H Copy/append pattern space to hold space. g G Copy/append hold space to pattern space. n N Read/append the next line of input into the pattern space. 这六个命令确实使我感到困惑。
86 linux  sed 

20
使用find和sed递归重命名文件
我想浏览一堆目录,并将以_test.rb结尾的所有文件重命名为以_spec.rb结尾的文件。这是我从未真正弄清楚如何使用bash的事情,因此这一次我想我会花些力气将它钉牢。但是到目前为止,我的最大努力是: find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:exec之后有一个额外的回显,以便在测试时打印命令而不是运行命令。 当我运行它时,每个匹配文件名的输出是: mv original original 即用sed替代已丢失。诀窍是什么?
85 bash  scripting  sed  find  replace 

6
如何从匹配行之后删除文件中的所有行?
我有一个由几行文本组成的文件: The first line The second line The third line The fourth line 我有一个字符串,其中之一是: The second line 我要删除字符串,并在文件中后,所有行,因此它会删除The third line,并The fourth line在除了字符串。该文件将变为: The first line 我在google上搜索了一个解决方案,似乎应该使用sed。就像是: sed 'linenum,$d' file 但是如何找到字符串的行号?或者,我还应该怎么做?
84 linux  bash  sed 


8
不区分大小写的搜索并替换为sed
我正在尝试使用SED从日志文件中提取文本。我可以轻松进行搜索和替换: sed 's/foo/bar/' mylog.txt 但是,我想使搜索不区分大小写。从我搜索过的内容来看,似乎i可以在命令末尾附加内容: sed 's/foo/bar/i' mylog.txt 但是,这给了我一条错误消息: sed: 1: "s/foo/bar/i": bad flag in substitute command: 'i' 这里出了什么问题,我该如何解决?

11
如何从给定的文本文件中删除所有空格
我想从给定的文本文件中删除所有空白。是否有任何可用的shell命令?或者,如何使用sed用于此目的。 我想要以下内容: $ cat hello.txt | sed .... 我试过了:cat hello.txt | sed 's/ //g'。但是它只删除空格,而不删除制表符。
81 linux  bash  sed 


2
如何在文件中使用grep区分大小写的字符串?
我有一个file1以Success...OR 结尾 的文件success... 我想以一种不区分大小写的方式来grep表示这个词success。 我已经写了以下命令,但是区分大小写 cat file1 | grep "success\.\.\." 我该如何,它改变它,以便returns 0与两个Success...或 success...
78 bash  shell  awk  sed  grep 

10
如何在sed中转义双引号和单引号?
据我发现,当您使用单引号时,其中的所有内容均视为文字。我想要那个代替我。但我也想找到一个带有单引号或双引号的字符串。 例如, sed -i 's/"http://www.fubar.com"/URL_FUBAR/g' 我想用URL_FUBAR替换“ http://www.fubar.com”。sed应该如何识别我的//或双引号? 谢谢你的帮助! 编辑:我可以使用s/\"http\:\/\/www\.fubar\.\com\"/URL_FUBAR/g吗? \实际是否将单引号内的字符转义?
76 bash  command-line  sed 

6
使用sed删除两个匹配模式之间的所有行
我有一个类似的文件: # ID 1 blah blah blah blah $ description 1 blah blah # ID 2 blah $ description 2 blah blah blah blah 如何使用sed命令删除#和之间的所有$行?因此结果将变为: # ID 1 $ description 1 blah blah # ID 2 $ description 2 blah blah blah blah 您能否也请给一个解释?
76 regex  sed 

9
使用Shell脚本在指定模式后将多行插入文件
我想使用Shell脚本在文件中插入多行。让我们考虑一下我的输入文件内容是: input.txt: abcd accd cdef line web 现在,我必须在input.txt文件中的'cdef'行之后插入四行。插入我的文件后,应更改为: abcd accd cdef line1 line2 line3 line4 line web 上面的插入我应该使用shell脚本来做。谁能帮我?
75 linux  bash  shell  sed  awk 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.