Articles of sed

如何删除与模式匹配的行和使用sed后面的行?

我有一个如下所示的文件: good text good text FLAG bad text bad text good text good text good test bad Text FLAG bad text bad text good text 我需要删除任何包含“FLAG”的行, 而且我总是需要在“FLAG”行之后立即删除这一行。 “旗”线来不规则,我不能依赖任何行号策略。 任何人都知道如何用sed做到这一点?

在某种模式之前添加文本时使用sed和忽略大小写

sed -i '/first/i This line to be added' 在这种情况下,如何在searchpattern = first的时候忽略case

sed与特殊字符

我有我想要使用sed的这一行: –> ASD = $start ( *.cpp ) <– $ start不是可变的,我想用sed来代替所有的行: ASD = $dsadad ( .cpp ) 我怎样才能使sed忽略特殊的charactars,我试图在特殊字符之前加斜杠,但也许我错了,有人可以给我一个例子吗? 这是我想要的: sed's / CPPS = \ $(shell ls | grep * .cpp)/ somereplace /'Makefile

如何在linux中设置sed命令的临时文件目录?

我有这样修改文件的bash脚本 sed -i "/hello world/d" /etc/postfix/virtual 我从web应用程序运行这个脚本。 sed命令在该目录中创build临时文件,但在其下运行的Web应用程序的用户无权在该目录中创build文件。 我不想给该文件夹的用户更多的权限。 是否有可能为sed命令指定临时文件位置? 我是在Linux新,所以很抱歉,如果我的问题太容易,但我没有find任何解决scheme。 谢谢!

为什么sed会留下许多文件?

我注意到我的目录中有很多文件,叫做“sedAbCdEf”或类似的东西。 为什么会创build这些文件? 脚本运行后,这些脚本是否有价值? 我可以将这些文件发送到另一个位置,例如/tmp/ ? 更新: 我检查了脚本,直到find一个制作文件的脚本。 这是一些示例代码: #!/bin/bash a=1 b=`wc -l < ./file1.txt` while [ $a -le $b ]; do for i in `sed -n "$a"p ./file1.txt`; do for j in `sed -n "$a"p ./file2.txt`; do sed -i "s/$i/\nZZ$jZZ\n/g" ./file3.txt c=`grep -c $j file3.txt` if [ "$c" -ge 1 ] then echo $j >> […]

使用? 与sed

我只是想得到一个文件的数量,可以或不可以gzip'd。 然而,似乎sed中的正则expression式不支持? 。 这是我的尝试: echo 'file_1.gz'|sed -n 's/.*_\(.*\)\(\.gz\)?/\1/p' 并没有返回。 那我加了一个? 到被分析的string: echo 'file_1.gz?'|sed -n 's/.*_\(.*\)\(\.gz\)?/\1/p' 并得到: 1 那么,它看起来像? 在大多数正则expression式中使用不支持在sed,对不对? 那么,我只想sed给1 file_1和file_1.gz 。 如果执行时间很关键,那么在bash脚本中如何做到这一点呢?

用grepparsingstring

我需要一些在Linux中parsingstring的帮助。 我有一个string: [INFO] Total time: 2 minutes 8 seconds 只想得到 2 minutes 8 seconds

Bash:将键值行转换为CSV格式

编者按:我已经澄清了问题的定义,因为我觉得这个问题很有意思,这个问题值得重新打开。 我有一个文本文件,其中包含以下格式的键值行 – 请注意,下面的#行仅用于显示重复块,不是input的一部分 : Country:United Kingdom Language:English Capital city:London # Country:France Language:French Capital city:Paris # Country:Germany Language:German Capital city:Berlin # Country:Italy Language:Italian Capital city:Rome # Country:Russia Language:Russian Capital city:Moscow 使用shell命令和实用程序,我怎样才能将这样的文件转换为CSV格式,所以它看起来像这样? Country,Language,Capital city United Kingdom,English,London France,French,Paris Germany,German,Berlin Italy,Italian,Rome Russia,Russian,Moscow 换一种说法: 将键名称设置为CSV标题行的列名称。 使每个块的值分别为数据行。 编辑:我的想法是将条目分开,例如:国家:法国将成为国家法国,然后grep / sed标题。 但是,我不知道如何将标题从一个列移动到几个单独的列。

从string中提取分辨率

我有以下string stream#0:0(eng):video:h264(约束基线)(avc1 / 0x31637661),yuv420p,1280×720 [SAR 1:1 DAR16:9],5238kb / s,29.97fps,29.97tbr,30ktbn, 58 tbc 我试图提取1280×720 , 我用了 sed -r 's/.+([0-9]{3,5})x([0-9]{3,5}).+/\1x\2/' 但它只会返回280×720 。

如何仅在重复行的末尾添加连续数字

我有一个重复行的文件。 我只想在这些重复的结尾放一个连续的数字。 例。 input: Jose da Silva Jose da Silva Fulano de Tal Jose da Silva Sicrano Pereira Ze Ruela Sicrano Pereira Jose da Silva 输出: Jose da Silva #1 Jose da Silva #2 Fulano de Tal Jose da Silva #3 Sicrano Pereira #1 Ze Ruela Sicrano Pereira #2 Jose da Silva #4 我不能sorting这些线。 他们必须以相同的顺序出现。