Questions tagged «sed»

sed是用于过滤和转换文本的命令行流编辑器。

2
在(包括)两个模式之间打印行
我想从行CK末的行开始grepping,而当行末的行停止grepping D。我尝试过grep "$CK" "$D" file..txt,但是没有用。 输入: kkkkkkkkkkk jjjjjjjjjjjjjjjjjj gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D GGGGGGGGGGGGGG GGGGGGGGGGGGGG 所需的输出: gggggggggggg/CK JHGHHHHHHHH HJKHKKLKLLL JNBHBHJKJJLKKL JLKKKLLKJLKJ/D

3
根据文件的第5列值过滤.CSV文件,并将这些记录打印到新文件中
我有一个.CSV文件,格式如下: "column 1","column 2","column 3","column 4","column 5","column 6","column 7","column 8","column 9","column 10 "12310","42324564756","a simple string with a , comma","string with or, without commas","string 1","USD","12","70%","08/01/2013","" "23455","12312255564","string, with, multiple, commas","string with or, without commas","string 2","USD","433","70%","07/15/2013","" "23525","74535243123","string , with commas, and - hypens and: semicolans","string with or, without commas","string 1","CAND","744","70%","05/06/2013","" "46476","15467534544","lengthy string, with …
16 linux  sed  awk  csv  filter 

2
grep:显示一次文件名,然后显示带有行号的上下文
我们的源代码中遍布错误代码。使用grep可以很容易地找到它们,但是我想要一个find_code可以执行的bash函数(例如find_code ####),它将提供以下内容的输出: /home/user/path/to/source.c 85 imagine this is code 86 this is more code 87 { 88 nicely indented 89 errorCode = 1111 90 that's the line that matched! 91 ok this block is ending 92 } 93 } 这是我目前拥有的: find_code() { # "= " included to avoid matching unrelated number …

2
使用sed删除直到第一次出现结肠
我的sed命令是 sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf' 它必须返回 bcde:cdeaf (即)必须删除该行中第一个冒号之前的所有字符以及冒号本身。 但这并没有删除任何内容。 我的困惑主要是由于 1)是否需要在sed regex-es内部转义用于模式匹配的括号? 2)在任何情况下(转义/不转义),它均不起作用。我试过了, sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
16 sed 

5
使用sed提取2个标签之间的文本
我有一个.xml文件,我正在RHEL6计算机上尝试进行“组安装”,因为该.xml文件中有数百个库...(接近16000行)。 因此,我尝试提取具有以下结构的.xml文件中包含的组名: <b> <group> <id> group name </id> <packages> ... </packages> <id> group name 2 </id> <packages> ... </packages> <id> etc... </id> </group> </b> 基本上,这就是我尝试过的: sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt 我将.xml文件复制到test1.txt。我正在尝试将组名从test1.txt提取到另一个名为test2.txt的文件中。但是,使用上面的行,它将提取从FIRST <id>标记到</id>我文件中的最后一个标记的所有内容。如何更改代码以多次提取? 我的第二个问题是:-downloadonly插件是否可以与yum组一起使用?
16 sed 

5
如何将Shell命令嵌入到sed表达式中?
我有一个具有以下格式的文本文件: keyword value keyword value ... 关键字是单个单词,而值是直到行尾的所有其他内容。我想从shell脚本中读取文件,以使值(而不是关键字)经过shell扩展。 使用sed可以轻松匹配关键字和值部分 input=' keyword value value keyword "value value" keyword `uname` ' echo "$input"|sed -e 's/^\([^[:space:]]*\)[[:space:]]\(.*\)$/k=<\1> v=<\2>/' 产生 k=<keyword> v=<value value> k=<keyword> v=<"value value"> k=<keyword> v=<`uname`> 但是问题是我该如何将shell命令嵌入sed表达式的替换部分中。在这种情况下,我希望更换\1 `echo \2`。
16 shell  sed 

4
用sed处理bash变量
bash变量LATLNG像这样在方括号中包含纬度和经度值 (53.3096,-6.28396) 我想将它们解析成一个名为LAT和LON的变量,我正试图通过sed像这样 LAT=$(sed "s/(\(.*\),\(.*\))/\1/g" "$LATLNG") LON=$(sed "s/(\(.*\),\(.*\))/\2/g" "$LATLNG") 但是,出现以下错误: sed: can't read (53.3096,-6.28396): No such file or directory

3
一次调用sed即可进行多次编辑
我正在尝试使用sed编辑配置文件。我想更改几行。我知道Linux下sed -i允许进行就地编辑,但是它要求您保存到备份文件中。但是,我想避免有多个备份文件,并立即进行所有更改。 有没有办法做到这一点,sed -i还是有更好的选择?
16 sed 

2
用sed替换文件中所有行的模式中第一次出现的模式
是否可以在一个衬管中完成? 我有这样的输出: "First line" - Description " Second line" - Description "Third line" - Description " Fourth line" - Description 此输入是自动生成的。 我想"用"(引号)替换每行的第一次出现(引号+空格)。如果我全局应用替换,它也会更改每次出现的line" -情况line"-,因此我想知道是否可以使用sed一个衬垫来完成此操作。 我已经尝试使用^这样的 sed -r ':a;N;$!ba;s/(\^\" )/\"/g' 但是它不起作用,它不能替代任何东西。我试过了 sed -r ':a;N;$!ba;s/(^|\" )/\"/g' 并替换所有出现的事件。我刚刚开始使用sed,所以我真的不知道我做错了什么。 我在这里想念什么?

7
有没有办法防止sed解释替换字符串?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 如果要使用sed将关键字替换为字符串,sed会尝试解释您的替换字符串。如果替换字符串碰巧包含sed认为特殊的字符(例如'/'字符),则它将失败,除非您当然是要让替换字符串包含告诉sed如何操作的字符。 例如: VAR="hi/" sed "s/KEYWORD/$VAR/g" somefile 有没有办法告诉sed不要尝试解释特殊字符的替换字符串?我想要的是能够用变量的内容替换文件中的关键字,无论该内容是什么。
16 bash  shell-script  sed 

12
文件行到列的转换
假设我有一个文件: 文件1: PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc 我想要的File2: PAPER TEAM MANISH NISHA GARIMA JYOUTI 行到列的转换File1。

8
sed-删除文件中最后一个出现的字符串(逗号)?
我有一个很大的csv文件。您将如何,用sed(或类似功能)删除最后一个? ... [11911,0,"BUILDER","2014-10-15","BUILDER",0,0], [11912,0,"BUILDER","2014-10-15","BUILDER",0,0], [11913,0,"BUILDER","2014-10-15","BUILDER",0,0], ] 所需的输出 ... [11911,0,"BUILDER","2014-10-15","BUILDER",0,0], [11912,0,"BUILDER","2014-10-15","BUILDER",0,0], [11913,0,"BUILDER","2014-10-15","BUILDER",0,0] ] 以下sed命令将删除每行的最后一次出现,但我希望每个文件都删除。 sed -e 's/,$//' foo.csv 也不起作用 sed '$s/,//' foo.csv
15 sed 

9
使用sed查找文件中的所有事件
使用OPEN STEP 4.2 OS ...我目前正在使用以下sed命令: sed -n '1,/141.299.99.1/p' TESTFILE | tail -3 此命令将在IP为141.299.99.1的文件中找到一个实例,并且在它之前还包含3行,这一切都很好,不过我也想找到IP的所有实例以及它之前的3行不只是第一个
15 sed 

8
如何执行多行grep
您将如何对出现在两行上的文本执行grep? 例如: pbsnodes 是我使用的命令,该命令返回Linux集群的利用率 root$ pbsnodes node1 state = free procs = 2 bar = foobar node2 state = free procs = 4 bar = foobar node3 state = busy procs = 8 bar = foobar 我想确定与处于“ free”状态的节点匹配的proc的数量。到目前为止,我已经能够确定“进程数”和“处于空闲状态的节点”,但是我想将它们组合成一个显示所有空闲进程的命令。 在上面的示例中,正确答案将是6(2 + 4)。 我有的 root$ NUMBEROFNODES=`pbsnodes|grep 'state = free'|wc -l` root$ echo …


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.