sed相关内容

sed -i 触摸它不会改变的文件

我们服务器上有人运行了 sed -i 's/$var >>$var2/$var >$var2/* 将插入更改为在公共目录中的某些 bash 脚本中覆盖.没什么大不了的,它首先用 grep 进行了测试,它返回了预期的结果,只有他的文件会被触及. 他运行了脚本,现在文件夹中 1400 个文件中的 1200 个文件有了新的修改日期,但据我们所知,实际上只有他的一小部分文件被更改了. 为什么 ..
发布时间:2021-12-24 12:23:09 其他开发

对于包含模式的行,删除前 n1 行和后 n2 行

sed -e '/XXXX/,+4d' fv.out 我必须在一个文件中找到一个特定的模式并同时删除它上面的 5 行和下面的 4 行.我发现上面的行删除了包含模式的行和它下面的四行. sed -e '/XXXX/,~5d' fv.out 在 sed 手册中给出了 ~ 代表后面跟着模式的行.但是当我尝试时,它是删除了模式后面的行. 那么,如何同时删除包含模式的行上方的 5 行和下方的 4 ..
发布时间:2021-12-24 12:23:02 服务器开发

使用 sed 替换 HTML 标签内容

我正在尝试在 bash 脚本中使用 sed 替换 HTML 页面中某些 HTML 标记的内容.出于某种原因,我没有得到正确的结果,因为它没有取代任何东西.它必须是我忽略的非常简单/愚蠢的事情,有人愿意帮助我吗? 要搜索/替换的 HTML: 解锁/ 的成就点. 使用的sed命令: cat index.html |sed -i - ..
发布时间:2021-12-24 12:22:54 前端开发

在 Ubuntu 上查找并删除 DOS 行结尾

我发现我的许多文件都有 DOS 行结尾.在 VI 中,它们看起来像这样:“^M".我不想修改没有这些 DOS 行结尾的文件.如何使用 bash 脚本执行此操作?谢谢! 电动汽车 解决方案 grep -URl ^M .|来自dos的xargs grep 为您提供当前目录下具有 DOS 行结尾的所有文件的列表. -U 使 grep 考虑行尾而不是默认将它们剥离 -R 使其递 ..
发布时间:2021-12-24 12:22:45 服务器开发

sed 罕见分隔符(除了 & |/?...)

我在一个字符串上使用 Unix sed 命令,该字符串可以包含所有类型的字符(&、|、!、/、? 等). 是否有一个复杂的分隔符(有两个字符?)可以修复错误: sed:-e 表达式 #1,字符 22:`s' 的未知选项 解决方案 sed 中没有这样的多字符表达式分隔符选项,但我对此表示怀疑你需要那个.分隔符不应该出现在模式中,但是如果它出现在正在处理的字符串中,那就不是问题.除非您正在 ..
发布时间:2021-12-24 12:22:35 其他开发

只返回正则表达式匹配,而不是整行

我有一个多行文档,我希望从中提取特定的关键字和之后的单词.它看起来像这样: 这是关键词 1 第 1 行.这是第 2 行.这是关键字 word2 第 3 行. 如果我使用 egrep 'key [^s]+ ',输出是: 这是关键词 1 第 1 行.这是关键字 word2 第 2 行. 但是,我希望输出只是匹配而不是整行,即: key word1关键词2 有没有办法做到这一点? 解决 ..
发布时间:2021-12-24 12:22:22 其他开发

从文件中获取模式,与另一个文件的列进行比较,打印匹配的行,使用 awk

我基本上想结合 的力量 grep -f 与 awk '{ if($2=="这是我想输入固定字符串模式文件的地方") print $0}' 也就是说,我想使用模式输入文件(文件 2)搜索文件(文件 1)的特定列.如果简单地找到匹配: >输出文件.txt 从之前的帖子中,这条 awk 行非常接近: awk 'NR==FNR{a[$0]=1;next} {n=0;for(i in a){ ..
发布时间:2021-12-24 12:22:11 服务器开发

替换多个模式,但不要使用相同的字符串

是否可以在同一命令中将乘法模式更改为不同的值?假设我有 A B C D ABC 我想把每一个 A 改为 1,每一个 B 改为 2,每一个 C 改为 3 所以输出将是 1 2 3 D 123 因为我有 3 种模式要更改,所以我想避免单独替换它们.我以为会有像 这样的东西 sed -r s/'(A|B|C)'/(1|2|3)/ 但当然这只是将 A 或 B 或 C 替换为 (1|2| ..
发布时间:2021-12-24 12:22:00 其他开发

按列格式化输出

我想知道如何格式化以下输出: -0.3116274D-04-0.2389361D-04-0.1192458D-040.3306203D-040.2534987D-040.1265136D-04-0.2167920D-04-0.3713258D-04-0.2294900D-05-0.4151710D-05-0.7674479D-03-0.5749288D-040.1393479D-040.6763 ..
发布时间:2021-12-24 12:21:49 其他开发

使用一个 sed 命令进行多次替换

我想知道如何在 Mac OSX 中使用单个 sed 语句进行多次查找/替换.我可以在 Ubuntu 中执行此操作,但由于 OSX 的 BSD 性质,必须稍微更改命令. 所以,给定一个带有字符串的文件: “红蓝红蓝黑蓝红蓝红" 我想运行一个产生输出的 sed 语句: “绿黄绿黄黑黄绿黄绿" 我的两个带有限定 find 的 sed 语句 color1="绿色"颜色 2="黄色"寻找 . ..
发布时间:2021-12-24 12:21:40 其他开发

SED 删除两个模式之间的特定行?

我正在尝试使用 sed 过滤 *.ics 文件.*.ics 文件如下所示: [...]开始:事件用户名:0xfoo总结:fooDTSTART:20131212T090000大通:20131212T100000序列:0DTSTAMP:20131212T100000地点:foo类别:富描述:foo类别:公共结束:VEVENT[...] 我想删除开头的行,例如使用 UID 或 SEQUENCE,但前 ..
发布时间:2021-12-24 12:21:33 其他开发

如何使用 tcl 文件中的 sed

我正在尝试在 tcl 文件中使用 Unix "sed" 命令格式,如下所示:(将多个空格改为一个空格) exec/bin/sed 's/\+//g' $file 我也试过 exec/bin/sed 's/\\+//g' $file(一个额外的反斜杠) 没有一个版本工作,我收到错误 /bin/sed: -e 表达式 #1,字符 1:未知命令:`'' 该命令在 linux 终端运行时正常 ..
发布时间:2021-12-24 12:21:25 服务器开发

使用 sed 删除文本文件中的所有前导/后继空格

文件 1: 你好世界 如何使用 sed 删除此文件中的前导/尾随空格 - 使用一个命令(无中间文件)? 我目前有: sed -e 's/^[ \t]*//' a >乙 用于前导空格. sed 's/*$//' b >C 这用于尾随空格. 解决方案 你差不多明白了: sed -e 's/^[ \t]*//;s/[ \t]*$//' a >C 此外,在 sed 的某些风 ..
发布时间:2021-12-24 12:21:18 服务器开发

如何使用 awk/sed 更改小数点分隔符?

如何使用 sed 或 awkXXXXXX.XXX 更改为 XXXXXX,XXX/代码>? 解决方案 你想要多严格?您可以更改所有 . 字符,正如其他人所建议的那样,但是如果您有更多的数字,这将允许很多误报.更严格的是要求点的两边都有数字: $ echo 123.324 2314.234 adfdasf.324 1234123.daf 255.255.255.0 adsf.asdf a1. ..
发布时间:2021-12-24 12:21:09 其他开发

使用 ls 列出所有与模式不匹配的文件

可能的重复: 如何才能在 unix/linux shell 中进行模式匹配时,我使用反向通配符还是负通配符? 我已经阅读了 ls 的 man 页面,但我找不到列出所有不匹配的选项文件选择器.您知道如何执行此操作吗? 例如:假设我的目录是这样的: >lsa.txt b.mkv c.txt d.mp3 e.flv 现在我想做以下事情 >ls -[SOME_OPTION] *.txt ..
发布时间:2021-12-24 12:21:03 其他开发

sed 使用捕获组作为参数替换为 bash 命令的输出

我正在尝试用 sed 进行一些 base64 替换. 我想要做的是: sed -i "s|\(some\)\(pattern\)|\1 $(echo "\2" | base64 -d)|g" myFile 用英语表示: 计算一个模式 捕获组 在 bash 命令中使用捕获的组 使用此命令的输出作为替换字符串 到目前为止我的命令不起作用,因为 \2 只被 sed 知道,而不 ..
发布时间:2021-12-24 12:20:59 其他开发

从变量中删除前面和包含某个子字符串的所有内容

在 Bash 中,如何从变量中删除字符直到某个子字符串? 示例: ananas1kiwi2apple1banana2tree 应该是这样的: apple1banana2tree 这种情况下的子串是2. 解决方案 如果要删除2以内的子串,使用bash参数扩展: ${var#*2} # 从左开始进行非贪婪匹配,使用 ## 进行贪婪 #*2 匹配并丢弃变量 var ..
发布时间:2021-12-24 12:20:52 其他开发

unix shell:用字典替换

我有一个包含一些数据的文件,就像这样 2011-01-02 100100 12011-01-02 100200 02011-01-02 100199 32011-01-02 100235 4 并在单独的文件中有一些“字典" 100100 事件 1100200 事件 2100199 事件3100235 事件 4 我知道 0 - 警告1 - 错误2 - 关键等等... 我需要一些带有 se ..
发布时间:2021-12-24 12:20:33 其他开发

如何使用 sed/awk 切换/旋转每两行?

我一直在手工做这件事,但我再也做不到了——我有成千上万行,我认为这是 sed 或 awk 的工作. 本质上,我们有一个这样的文件: 一句话X匹配的句子 Y一句话Z一个匹配的句子 N 这个模式在整个文件中继续.我想翻转每个句子和匹配的句子,这样整个文件就会变成这样: 一个匹配的句子Y一句话X一个匹配的句子 N一句话Z 有什么建议吗? 编辑:扩展初始问题 Dimitre Ra ..
发布时间:2021-12-24 12:20:15 其他开发

如何使用sed仅删除文件中第一次出现的行

我有以下文件 titi塔塔托托塔塔 如果我执行 sed -i "/tat/d" file.txt 它将删除所有包含 tat 的行.命令返回: titi托托 但我只想删除包含 tat 的文件中出现的第一行: titi托托塔塔 我该怎么做? 解决方案 你可以使用双地址形式: sed '0,/tat/{/tat/d;}' 输入文件 这将删除第一次出现的模式. 引用inf ..
发布时间:2021-12-24 12:20:08 服务器开发