sed相关内容

使用 sed 匹配包含换行符的字符串

我有一个这样的字符串: #爸爸 基本上转换为 \t#\n\tpap 并且我想将其替换为: #爸爸Python 转换为 \t#\n\tpap\n\tpython. 用 sed 尝试了很多方法,但它不起作用可能是因为 sed 以不同的方式使用新行.我试过: sed -i "s/\t#\n\tpap/\t#\tpython\n\tpap/"/etc/freeradius/sites- ..
发布时间:2021-12-24 12:14:37 服务器开发

如何解析多行记录(使用 awk?)

我想弄清楚如何从由 \n\n 分隔的多行记录中提取特定字段. 在这种情况下,它恰好是从类似于 DEBIAN 控制文件的 apt-cache 输出.查看 apt-cache show "$package" 的输出 包装:咖啡因优先级:可选部分: 杂项安装尺寸:641维护者:Reuben Thomas 架构:全部版本:2.8.3依赖:python3:any (>= ..
发布时间:2021-12-24 12:14:29 服务器开发

如何在unix中比较和替换不同行中的字符串

我想比较和替换 unix 中不同行中存在的字符串 例如我有一个文件,每行两个字 如果任何行的第二个单词与任何其他行的第一个单词匹配,则该行的第二个单词应替换为匹配行的第二个单词,并应迭代直到该行的第二个单词与第一个单词之间没有匹配另一行 我需要这样的结果 我是 unix 新手,不知道如何实现 ..
发布时间:2021-12-24 12:14:21 服务器开发

比较 2 个文件并在它们匹配 file1 中找到的值时删除 file2 中的任何行

我有两个文件.当文件 1 中找到的值匹配时,我试图删除文件 2 中的任何行.一个文件有这样的列表: 文件 1 ZNI00​​8ZNI00​​9ZNI010ZNI011ZNI012 ...超过 19463 行 第二个文件包含与第一个中列出的项目匹配的行:文件 2 copy/Y \\server\foldername\version\20050001_ZNI00​​8_162635. ..
发布时间:2021-12-24 12:14:14 Python

sed:返回最后出现的匹配,直到文件结束

使用 sed,我如何返回匹配的最后一次出现直到文件结束?(仅供参考,这已被简化) 到目前为止我已经尝试过: sed -n '/统计|/,$p' logfile.log 从第一个匹配项开始返回所有行(几乎整个文件) 我也试过: $linenum=`tail -400 logfile.log |grep -n "统计|"|尾-1 |剪切-d:-f1`sed "$linenum,\$! ..
发布时间:2021-12-24 12:13:55 其他开发

使用变量时 sed 替换不起作用

尝试用 sed 替换字符串时发生了一些奇怪的事情.这有效: find/home/loni/config -type f -exec sed -i 's/some_pattern/replacement/g' {} \; 所以当我手动输入字符串时它会起作用.但在以下情况下不会发生替换: find/home/loni/config -type f -exec sed -i 's/${PATTER ..
发布时间:2021-12-24 12:13:44 服务器开发

sed 替换最后一行匹配模式

给定一个这样的文件: a乙一个乙 我希望能够使用 sed 来替换文件中包含“a"实例的最后一行.所以如果我想用“c"替换它,那么输出应该是这样的: a乙C乙 请注意,无论它可能遇到多少匹配项,或者所需模式或文件内容可能是什么的详细信息,我都需要它来工作.提前致谢. 解决方案 不完全是 sed 而已: tac 文件 |sed '/a/{s//c/;:环形;n;b 循环}' |战术 ..
发布时间:2021-12-24 12:13:35 其他开发

SED 命令不是从 bash 脚本运行的

我编写了一个 bash 脚本,它在文件上调用 sed 命令(除其他外)以完成对 2 个不同字符串的查找/替换. 问题是,运行脚本后,我检查了文件,但没有任何更新.但是,如果我运行正在生成的命令(无论如何我都会将它们作为输出进行回显),那么它们就可以工作了. 例如,在我的脚本中: echo "/usr/local/bin/sed -i -e 's/${String1}/${String ..
发布时间:2021-12-24 12:13:13 其他开发

在行尾添加 sed

给定一个包含多行的纯文本文档,例如: c48 7.587 7.39c49 7.508 7.345983c50 5.8 7.543c51 8.37454546 7.34 我需要在行尾后 2 个空格处添加一些信息,因此对于每一行我都会得到: c48 7.587 7.39 defc49 7.508 7.345983 defc50 5.8 7.543 定义c51 8.37454546 7.34 de ..
发布时间:2021-12-24 12:12:45 其他开发

使用sed搜索和替换文件中的IP地址

一直在尝试让它工作一段时间,但并没有真正得到它.基本上,我有一个 IP 地址每天或多或少变化的文件.该文件只包含一个 ip 地址,这是我试图用疯狂的 grepping 替换的地址,以找到我当前的内部 ip. 我有这个 #!/bin/shnewip=$(ifconfig | grep 0xfff | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep ..
发布时间:2021-12-24 12:12:39 其他开发

如何在 sed 中匹配多个地址?

我想对与多个命令的 and 或 or 匹配的任何行执行一些 sed 命令:例如,sed '50,70/abc/d' 将删除 50,70 范围内与 /abc/ 匹配的所有行,或执行 的方法>sed -e '10,20s/complicated/regex/' -e '30,40s/complicated/regex/ 无需重新输入 s/compicated/regex/ 解决方案 Logic ..
发布时间:2021-12-24 12:12:34 其他开发

使用 sed 删除文件中的所有注释

你将如何使用 sed 从文件(用 # 定义)中删除所有关于“#"在字符串中的评论? 这帮助了很多,除了字符串部分. 解决方案 如果 # 总是表示注释,并且可以出现在一行的任何地方(比如在一些代码之后): sed 's:#.*$::g' 如果你想就地改变它,添加-i开关: sed -i 's:#.*$::g' 这将删除从任何 # 到行尾,忽略任何上下文.如果您在任何不是注释 ..
发布时间:2021-12-24 12:12:24 其他开发

在文件中第一次出现特定字符串之前删除所有行

基本上我有一个类似的文件: 垃圾更多垃圾某个字符串蝙蝠车某个字符串蝙蝠车某个字符串蝙蝠车 我想在第一次出现 somestring 之前删除所有的 junk 所以文件看起来像 某个字符串蝙蝠车某个字符串蝙蝠车某个字符串蝙蝠车 我遵循了 this question 使用 sed -i '0,/somestring/,d' file.txt 但它删除了第一次出现 somestring 的行,当我 ..
发布时间:2021-12-24 12:12:18 其他开发

如何在 Linux 上使用 shell 脚本解析 JSON?

我有一个 Json 输出,我需要从中提取一些 linux 中的参数. 这是json输出: {"OwnerId":"121456789127","ReservationId":"r-48465168",“组":[],“实例":[{“监控":{“状态":“已禁用"},"PublicDnsName":null,"RootDeviceType":"ebs",“状态":{“代码":16,“名称":“ ..
发布时间:2021-12-24 12:12:08 服务器开发

用 sed 剥离十六进制字节 - 不匹配

我有一个包含两个非 ascii 字节(0xFF 和 0xFE)的文本文件: ??58832520.3,ABC348384,DEF 这个文件的十六进制是: FF FE 35 38 38 33 32 35 32 30 2E 33 2C 41 42 43 0A 33 34 38 33 38 34 2C 44 45 46 巧合的是 FF 和 FE 恰好是前导字节(它们存在于我的整个文件中,尽管似乎 ..
发布时间:2021-12-24 12:12:00 其他开发

如何替换两点之间的所有线并用sed中的一些文本替换它

假设我有这样的文字: BEGIN你好世界如何是你结尾 如何在 Linux 中使用 sed 命令将其转换为波纹管文本: BEGIN很好,谢谢结尾 解决方案 $ cat 文件开始你好世界如何是你结尾$ sed -e '/BEGIN/,/END/c\BEGIN\n很好,谢谢\nEND'文件开始很好,谢谢结尾 /BEGIN/,/END/ 选择以 BEGIN 开头并以 END 结尾的文本范围.然 ..
发布时间:2021-12-24 12:11:51 服务器开发

awk 列的中位数

如何使用 AWK 计算一列数值数据的中位数? 我能想到一个简单的算法,但我似乎不会编程: 到目前为止我所拥有的是: 排序 |awk 'END{print NR}' 这给了我列中元素的数量.我想用它来打印某一行 (NR/2).如果 NR/2 不是整数,则向上取整为最接近的整数,即中位数,否则取 (NR/2)+1 的平均值和 (NR/2)-1. 解决方案 这个 awk 程序假设 ..
发布时间:2021-12-24 12:11:45 其他开发

如何在模式之前和行号之后使用 sed 插入一行?

如何使用 sed 在模式之前和行号之后将一行插入到文件中?以及如何在shell脚本中使用相同的内容? 这会在每行之前插入一行模式: sed '/Sysadmin/i \ Linux Scripting' filename.txt 这使用行号范围改变了这一点: sed '1,$ s/A/a/' 那么现在如何使用这两者(我不能)在模式之前和行号或其他方法之后使用 sed 将一行插入到文件 ..
发布时间:2021-12-24 12:11:40 服务器开发