Questions tagged «sed»

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

3
如何使用sed删除U + 200B(零宽度空间)
我有一个很大的文件,整个文件零散。使用打开和编辑它花费的时间太长,vi因此我想使用删除该字符的所有实例sed。问题是,我不知道如何匹配角色!我已经尝试使用\u200B,\x{200b}。有任何想法吗? 如果有帮助,我正在运行CentOS 5。
15 regex  unicode  sed 

3
如何使用Python / AWK / SED为降价文档制作目录?
我有以下降价文件: Heading-a ========== ---text--- Heading-b ------------ --- text --- Heading-c ---------- --- text--- Heading-d ======= --- text---- Heading-e --- ... 我想从中制作一个可点击的目录,类似于LaTex的方法,但是找不到能做到这一点的工具,这对我来说建议我们建立一个。 该工具应收集“ H1”标题和“ H2”标题,以便为其分配数字1 Heading-a和1.1。至Heading-b1.2。至Heading-c,2.至Heading-d,2.1。对Heading-e等,这样,我们应该得到的内容如下表: 1. Heading-a 1.1. Heading-b 1.2. Heading-c 2. Heading-d 2.1. Heading-e 如何使用Python / AWK / SED做到这一点?

2
替换文本文件每行中第n次出现的字符串
我有大型文本文件,使用空格分隔字符串(2-5)。字符串可以包含“'”或“-”。我想用管道代替第二个空间。 最好的方法是什么? 使用sed我在想: sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt 还有其他/更好/更简单的想法吗?
15 linux  command-line  sed  awk 

2
正确转义bash脚本中的正斜杠以用于sed
我正在尝试通过在干燥模式下运行rsync并总结rsync输出中列出的文件的大小来确定在同步两个文件夹时将新复制的文件的大小。 目前,我一直坚持以文件的父文件夹作为前缀。我发现了如何使用sed为行添加前缀以及如何使用sed进行转义,但是我很难将两者结合起来。 这是我走了多远: source="/my/source/folder/" target="/my/target/folder/" escaped=`echo "$source" | sed -e 's/[\/&]/\\//g'` du `rsync -ahnv $source $target | tail -n +2 | head -n -3 | sed "s/^/$escaped/"` | awk '{i+=$1} END {print i}' 这是我从bash -x myscript.sh获得的输出 + source=/my/source/folder/ + target=/my/target/folder ++ echo /my/source/folder/ ++ sed -e 's/[\/&]/\//g' + escaped=/my/source/folder/ + …

4
在两个双引号之间使用sed get子字符串
我有一个档案 xyz... rsync: "/home/path/to/file": Permission denied (13) rsync: "/home/path/to/file1": Permission denied (13) rsync: "/home/path/to/file2": Permission denied (13) rsync: "/home/path/to/file3": Permission denied (13) 现在,我只想提取文件路径并将其存储到另一个文件。输出文件如下: /home/path/to/file /home/path/to/file1 /home/path/to/file2 /home/path/to/file3 使用sed或awk我该怎么做? 我已经尝试过,sed -n '/"/,/"/p' myfile但是没有用。
14 sed 

2
递归查找和删除所有文件中的行
我已经设法通过使用grep关键字的出现 grep "KeyWord" . -r -n -i -I 但是,关键字的出现次数过多。我只想删除包含该单词的所有行。 我四处搜寻,sed看起来像是实用程序。谁能告诉我什么命令可以解决这个问题? 谢谢。
14 grep  sed 

3
更好的做“ echo $ x | sed…”和“ echo $ x | grep……”
我经常在脚本中找到它(而且我必须承认,请自己编写): a=$(echo "$x" | sed "s/foo/bar/") 要么 if echo "$x" | grep -q foo then ... fi 考虑“ foo”包括一些正则表达式的东西。 我认为应该-很有可能是 -一种更好的措辞,一种不涉及两个命令和管道但将其包装成更紧凑的表达式的方式。 我只是找不到。有人吗
14 shell  grep  sed 

4
如何用sed递归替换字符?
是否可以递归地替换出现的字符序列,而无需再次遍历同一序列? 通过sed在以下情况下执行a ,我可以获得上述输出。 $ echo XX | sed -e 's/XX/XoX/g' XoX $ echo XXX | sed -e 's/XX/XoX/g' XoXX $ echo XXXX | sed -e 's/XX/XoX/g' XoXXoX 但是,我期望输出遵循以下行为。 输入: XX XXX XXXX 预期产量: XoX XoXoX XoXoXoX 仅使用sed是否有可能达到预期的行为?
13 linux  bash  regex  sed 

1
使用sed在Apache配置中启用.htaccess文件
我正在尝试使用Bash脚本自动设置Ubuntu Vagrant框。一切都很好,但是我在配置Apache以允许覆盖.htaccess文件方面遇到困难。在我的配置文件中,有以下块: <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> 我需要做的就是替换AllowOverride None为AllowOverride all。这似乎是的任务sed,但是<Directory>此配置文件中还有其他块我不想允许覆盖。 当特定字符串出现在其他两个特定字符串之间时,如何使用sed将特定字符串替换为新字符串? 换句话说,AllowOverride None只有当它出现在<Directory /var/www/>和之间时,才可以替换</Directory>吗? 我可以使用以下命令来获取我感兴趣的块: sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default

1
sed中的-n选项有什么作用?
这是以下产品的手册页条目-n: -n 禁止自动打印图案空间 我注意到,当不使用-n对某些操作,每行被打印到标准输出(和所请求的线被印刷两次): $ cat test.txt first second third fourth fifth $ sed -n '2,3p' test.txt second third $ sed '2,3p' test.txt first second second third third fourth fifth 但是,该法律不适用于其他命令: $ sed -n 's/t/T/' test.txt $ sed 's/t/T/' test.txt firsT second Third fourTh fifTh 那么究竟是-n什么呢?

3
Cygwin bash sed锁定我的文件
当我使用sed命令更改cygwin bash中的文件时,文件被锁定。 复制: 打开cmd并cd转到非用户目录(fe temp) echo aaa > test.txt 在texteditor中打开,添加行,尝试保存=>作品 %CYGWIN_HOME%\bin\bash -c "sed -i 's/aaa/bbb/' test.txt” 在texteditor中,添加另一行并尝试保存=>“访问被拒绝” WTF ?!如何在不锁定的情况下sed文件,或之后释放文件句柄? Windows安全性权限似乎已完全固定在文件上: 之前的权限: 之后的权限: 但是它在用户目录(Desktop)中有效 我使用LockHunter检查了文件,但似乎没有任何过程可以锁定文件 Cygwin常见问题解答提到了对某些程序的干扰。它尝试卸载Antivir和Catalyst并重新启动。 尝试UnxTools(崩溃),GnuWin32(sed不支持就地替换),Interex(安装程序不支持W7 Pro)... *叹气*
12 windows  bash  sed  cygwin 

3
用sed删除字符串中的第一个已知字符
如何用sed删除字符串中的第一个已知字符? 例如,假设我要删除字符串“ @ ABCDEFG1234”中的第一个字符(即@)。 我要sed验证“ @”是否作为第一个字符存在。如果是这样,则应删除该字符。
12 sed 

1
用[AJ]代替[0-9]不适用于sed
我正在使用一个命令,用sed中的相应字母替换所有数字0-9。我知道我做错了什么,但sed并未将替换正则表达式解释为字符串文字。 我正在使用的命令是 sed -r 's/[0-9]/[A-J]/g' log > ~/output.txt 对我来说,这似乎很简单,但是我已经坚持了大约一个小时。我收到的输出仅将0-9替换为字符串“ [AJ]”

2
一个大文本文件中的多个搜索和替换操作
我有一个大文本文件(大约2GB)。我想对同一文件执行五次搜索和替换操作,并希望在一个命令中执行此操作。通常我使用vim,打开文件,执行一个替换操作,然后执行另一个操作,依此类推。有一个陷阱,因为我注意到三到四次搜索后,由于内存问题,vim崩溃了。 这是我在Vim中使用的命令的两个示例: :%s/www\.abcdef/www.test.abcdef/g :%s/www\.klmnop/www.test.klmnop/g 处理此问题的最佳方法是什么?

1
GNU sed(对于Windows)可以处理Unicode吗?如果是这样,是代码页/语言环境问题还是开关?
我已经使用GNU SED了两年了。有时它使我有点烦,但是它做得很好……对于单字节字符集! 我时不时注意到对GNU SED的引用是Unicode感知的,但是我所看到的最接近的是其“二进制”模式。而二进制不是Unicode。 GSED可以处理CodePoint分辨率的Unicode文本文件,尤其是\ r \ n(Windows)...,如果可以的话,它希望使用UTF-8,UTF-16还是什么?SED如何检测编码?
10 windows  encoding  unicode  sed  gnu 

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.