Questions tagged «sed»

“ sed”(“流编辑器”)是一个Unix实用程序,用于解析和转换文本文件。

1
如何使sed省略不匹配的行?
在以下示例中,sed匹配以a a或a 开头的行,c并打印该行的第一个字符(a或c): $ echo "ag bh ci dj ek fl" | sed 's/\(a\|c\)./\1/' # Matches lines starting with 'a' or 'c'. output: a bh c dj ek fl 但是,与图案不匹配的线也会被打印出来。我该如何sed忽略与模式不匹配的行?我可以通过将其与grep(如下所示)组合来获得所需的效果,但是我想知道是否sed可以“单独”实现该效果。 $ echo "ag bh ci dj ek fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/' output: a c

5
使用sed从字符串中删除数字和空格
我试图删除第一次出现的数字,点,数字的第二次出现以及单词之前的空格。 我想出了这个正则表达式: sed 's/^[0-9]\+.[0-9]\+\s//' input.txt > output.txt 文字样本: 2.14 Italien 2.15 Japonais 不幸的是,我的正则表达式不起作用。有一个问题,\s但我无法确定它是什么... 有人可以帮忙吗? 编辑:问题是我需要删除第一个空格只有一些文本包含空格,如下所示: 3.15 Chichewa 3.16 Chimane 3.17 Cinghalais 3.18 Créole de Guinée-Bissau
6 regex  sed 

1
替换sed中的数字块
我一直在摆弄这一段时间,似乎无法弄明白。我要做的是用一个#替换文件中的所有数字。 听起来很简单,它应该是,但我无法理解它。任何帮助,将不胜感激。 我到目前为止(但不起作用)是: echo "fdsafdsa 32432 dsafdas" | sed 's/[0-9]+/#/g' 我期望的输出是: fdsafdsa # dsafdas 但是sed给了我相同的字符串,没有任何替换。 有线索吗?


1
sed中的`-e`选项有什么作用?
我试图了解使用的shell脚本 sed。我发现有些地方 sed 被调用了 -e 选项。 我试着看到了 man 页面,它只是提到, -e命令 将命令参数指定的编辑命令附加到命令列表。 这对我来说不是很清楚。 有人可以向我解释一下这是什么 -e 呢?谢谢。 PS:我正在使用 sed 在mac
4 sed 

2
使用sed替换字符串的一部分
我打算替换文件中的某些字符串; 所以我使用sed。 我希望替换字符串,而sed读取字符串并将文本附加到字符串的中间。 例: string in myfile : user=blabla string that I want to obtain: user=bob 所以我用这种方式运行sed,让它搜索“user =”字符串,并用“user = bob”替换它 sed -i 's/user=*/user=bob/' myfile 我得到的是 user=bobblabla 基本上sed认为我想要替换那个部分,而我想用新字符串替换整个字符串。我认为*会告诉sed考虑之后的任何事情,但它不起作用。 因为我不知道“blabla”会是什么,所以我不能把它放在sed命令中。如何告诉sed找到以“user =”开头的字符串并用新的字符串替换整个字符串?
3 bash  sed 

4
Sed:在文件的第一行之后追加包含换行符号的文本
我试图通过将输出重定向git shortlog到CHANGELOG.md文件以编程方式构建更改日志。 我的更改日志输出(删节): 布兰登迪尔(4): 修复依赖冲突 我的changelog文件(空)看起来像这样: CHANGELOG === 我试图使用的命令是: sed "2a $(git shortlog)" ./CHANGELOG.md 但我得到这个错误: sed: -e expression #1, char 30: extra characters after command 我想要的是: CHANGELOG === 布兰登迪尔(4): 修复依赖冲突 有人可以帮助连接我错过的点吗?

2
用sed替换特殊文本?
我在Windows Xp上使用CMD用Sed替换特殊文本。我正在使用此命令替换特殊字符,例如$ or *: sed -i "s/\*/123/g;" 1.txt 但是我必须使用命令来替换ciao!我的文本文件中的这些字符串?有可能吗? \\ \\\ "" sed.exe -i "s/{\*)(//123/ sed -i "s/\\/123/g;" 1.txt 上一个命令不起作用,因为我有\,"以及sed用于制作正则表达式的其他特殊字符串。

2
使用脚本在文本行中增加一个值
我有一个文本文件作为输入。我需要通过某些程序,SED,AWK等进行过滤,无论何时,每次运行脚本时都需要在特定行中增加一个值。 最好的方法是什么? 示范文本: File Type Rev 100 data a data b file loc comment line eof 只有“ Rev 100”应更改为“ Rev 101”
3 batch  sed  awk  plaintext 

3
Bash脚本,字符串未正确替换为转义的$和&字符
我创建了一个shell脚本,该脚本以字符串作为输入。如果字符串包含$或&,则需要用\$和替换这些字符\&。我可以用sed命令做到这一点。之后,我想用该对应的字符串替换特定文本文件中的单词。 请参阅本节以获取更多说明。 这是我的档案。 test.txt hello my root password is root. 现在,我想用字符串更改词根。该字符串可以是任何可以包含特殊字符(如$或)的东西&。 如果我想root用字符串替换my&rootpa$$,那么它应该看起来像my\&rootpa\$\$文本文件中的字符串。 这是我的外壳 #!/bin/bash dothis(){ rootpass=$(echo "$1" | sed -r 's/\$/\\$/g'); rootpass=$(echo "$rootpass" | sed -r 's/\&/\\&/g'); echo $rootpass; sed -i "s/root/$rootpass/g" test.txt } dothis "my&rootpa$$"; 该脚本可以正常运行echo $rootpass,也就是说,当我回显字符串时,它将显示my\&rootpa\$\$。 但是在文件中看起来my&rootpa$$不是my\&rootpa\$\$。脚本出了什么问题? 请指教。
3 linux  bash  shell  sed 

2
grep和sed with tail from tail -f似乎是缓存
我正在尝试使用一个工作系统来监控特殊日志。我通常只想要一个非常具体的模式,我提取使用grep和管道tail -f。我注意到grep不会输出所有内容,而是保留一些行缓冲。我想如果你有一个输出所有东西然后终止并关闭流的管道,这是有道理的。 但是,tail -f这对我来说不起作用。 出现同样的问题sed。 这是我想要使用的示例命令: clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g | grep -E --color 'ssh-iptables-perma|$' 举个例子: 上面命令的最后一行是这样的: 2015-05-04 11:17:24,551 [ssh-iptables] Ban x.x.x.x 并使用此命令: clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g 最后一行是这样的: 2015-05-04 19:45:17,615 …


3
如何使用Sed编辑.srt文件中的文本?
我的字幕文件(.srt)有问题。它不起作用。我想在Sed程序中使用Regex为多行文本添加一些参数。 从这种模式的变化: 00:00:00 --> 00:00:06 对此: 00:00:00,000 --> 00:00:06,000 在“hh:mm:ss”之后加上“,000” 如何为这个问题编写正则表达式?
2 regex  sed 

1
在OSX上编译时,sed版本不正确
我正在尝试crosstool-ng在OSX 10.6.8 上安装。在配置阶段,我运行./configure --prefix=/opt/cross,我得到以下输出: ! ./configure --prefix=/opt/cross checking build system type... x86_64-apple-darwin10.8.0 checking host system type... x86_64-apple-darwin10.8.0 checking for a BSD-compatible install... /opt/local/bin/ginstall -c checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for a sed that does not truncate output... /usr/bin/sed checking …
2 macos  sed  compile 

2
使用sed从RTF文件中删除换行符
我有一个RTF文件格式如下: Lorem ipsum dolor sit amet, consectetur adipiscing elit.\par Nullam vitae sem porttitor urna pellentesque gravida. Nulla\par consequat purus vel est vehicula porttitor.\par Maecenas pharetra metus in enim sollicitudin sollicitudin.\par Etiam et odio tellus, eget placerat enim. Aliquam sem purus,\par gravida sed feugiat eget, consectetur quis nisl.\par (\ par为简洁而添加) 如您所见,已插入换行符以适合页面的宽度。当我尝试读取iPhone上的文本时出现问题,该文本具有不同的行长度。线条断裂,可读性受阻。 …
2 linux  regex  sed  awk  rtf 

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.