问题标签 [sed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
513 浏览

regex - awk 或 sed:获取 [this text] 的最佳方式

我正在尝试从日志文件中解析各种信息,其中一些放在方括号内。例如:

使用 sed、awk 或其他 unix 实用程序从这些行中获取“someuserid”的优雅方法是什么?

0 投票
3 回答
12656 浏览

shell - 在 Shell 脚本中使用带有 sed 的变量

我正在编写一个 shell 脚本来编辑 aegis 的 Change-Set 属性。我正在使用的命令是:

这将打开一个 vi 编辑器来执行更改。我想做一个搜索和替换:

\"测试\"/g

我可以通过脚本将这些直接传递给打开的 vi 实例而不输入任何内容吗?我想在编辑后保存文档(:wq)。

PS该文件是执行命令时创建的临时文件所以我不知道原始路径

编辑:我可以在这种情况下使用 sed:

\"测试\"\;/g'

解决方案(不雅黑客??)将是“cat”来自aegis(setenv VISUAL cat)的输出,使用上述命令修改输出流并将其保存到临时文件,然后使用:

EDIT2:我几乎让它工作了。但是我的使用方式有问题sed

我的脚本中有以下行:

但是 $DESC 变量不会计算出它的值,并且输出如下:

Brief_description = "${DESC}";

如何将 DESC 传递给 sed 以评估其实际值?

编辑3:

使用

工作。我将普通分隔符 (/) 替换为 % 并将环境变量放在双引号中。

0 投票
3 回答
6793 浏览

regex - Sed:更改替换组的大小写

如何使用 sed Unix 命令将匹配组的大小写从小写更改为大写?

谢谢马丁

0 投票
2 回答
1592 浏览

regex - sed 中的正则表达式中的通配符和分组问题

我运行以下代码

文件失败是

上面的命令给了我

虽然它应该给出“testfailer”。

第二个和第一个 glob\2\1应该在单词“er”的开头。这表明我的问题可能出在搜索部分的正则表达式中。但是,它们对我来说似乎是正确的。

您在代码中看到任何错误吗?

0 投票
13 回答
73036 浏览

windows - 如何从 Windows 批处理文件中的 ECHO 字符串中去除引号?

我有一个正在创建的 Windows 批处理文件,但我必须 ECHO 一个大的复杂字符串,所以我必须在两端加上双引号。问题是引号也被回显到我正在写入的文件中。你如何回显这样的字符串并去掉引号?

更新:

在过去的两天里,我一直在努力解决这个问题,终于能够将一些东西拼凑在一起。理查德的回答去掉了引号,但即使我把 ECHO 放在子程序中并直接输出字符串,Windows 仍然挂断在字符串中的字符上。我会接受理查德的回答,因为它回答了所提出的问题。

我最终使用了 Greg 的 sed 解决方案,但由于 sed/windows 错误/功能而不得不对其进行修改(它没有提供文档并没有帮助)。在 Windows 中使用 sed 有一些注意事项:你必须使用双引号而不是单引号,你不能直接转义字符串中的双引号,你必须结束引用字符串,使用 ^ (so ^" ) 然后 beqin 引用下一节。此外,有人指出,如果您将输入通过管道传输到 sed,则字符串中存在管道错误(我没有得到验证,因为在我的最终解决方案中,我刚刚发现一种不在字符串中间包含所有引号的方法,并且只是删除了所有引号,我永远无法自行删除 endquote。)感谢所有帮助。

0 投票
4 回答
761 浏览

text - 将单个 sed 命令转换为可重用的 Textmate 命令

我有 7 行文字:

现在我想在每一行的末尾添加字符,最终得到:

我发现我可以使用“sed”命令并使用 Textmate 中的“通过命令过滤”通过 sed 运行我的选择

现在,一个问题仍然存在:我如何将它变成一个 Textmate 命令,以某种方式接受输入(所以它知道要附加什么文本)?

(我这样做的尝试被证明是不成功的)

0 投票
5 回答
421 浏览

perl - 如何使用 Perl 整理和汇总文件中的记录?

我有以下格式的文本文件:

我想要一个处理文本文件并报告以下内容的脚本:

  • 为 Acct 找到的列 CUSTOMER 的“更新”:211B1,211B2,211B3,211B4,211B5
  • 为 Acct 找到的列 CUSTOMER 的“DELETE”:5675FR,6470GI

我可以编写简单的解决方案,但这对我来说似乎有点复杂,希望得到帮助或指导。

0 投票
6 回答
2160 浏览

algorithm - sed优化(基于较小数据集的大文件修改)

我确实必须处理非常大的纯文本文件(超过 10 GB,是的,我知道这取决于我们应该称之为大的),而且行很长。

我最近的任务涉及基于另一个文件中的数据进行一些行编辑。

数据文件(应该修改)包含 1500000 行,每行例如 800 个字符长。每一行都是唯一的,并且只包含一个身份号码,每个身份号码都是唯一的)

修改文件是例如1800 行长,包含一个身份号码,以及一个应该在数据文件中修改的数量和日期。

我刚刚将修饰符文件(使用 Vim 正则表达式)转换为 sed,但效率非常低。

假设我在数据文件中有这样一行:

我需要修改 300 字符部分中的数据。

基于修饰符文件,我想出了这样的 sed 行:

所以我有1800行这样的。

但我知道,即使在非常快的服务器上,如果我执行

它非常慢,因为它必须读取每个模式 x 每一行。

没有更好的方法吗?

注意:我不是程序员,从未(在学校)学习过算法。我可以在服务器上使用 awk、sed、perl 的过时版本。

0 投票
3 回答
5086 浏览

linux - 让 sed 用参数替换文本

好吧,我知道这是一个简单的问题,但我似乎无法让这个 sed 命令工作。我正在尝试获取一个文本文件并将其中的一部分从占位符文本替换为研究代码。当脚本首次运行时,将要替换它的研究代码使用参数传递到脚本中。问题是,当我尝试用变量 $study 替换占位符文本时,它会用字面上的“$study”替换它。

现在我的论点是这样设置的:

出口研究=$ 1

出口标签=$2

出口模式=$3

出口选择=$4

我的 sed 命令如下所示:

sed -i.backup -e 's/thisisthestudycodereplacethiswiththestudycode/$study/' freq.spx

是否有一些简单的方法可以让 sed 不看字面的 $study,或者此时以另一种方式做会更好?

0 投票
7 回答
12700 浏览

regex - 如何使用 sed 删除匹配的行,上一行和下一行?

我在一个文件中多次出现以下序列:

我有一个匹配的正则表达式xxxx。每当有匹配时,我想删除该行,之前的行(例如yyyy)和之后的行(例如zzzz)。我怎样才能使用 sed 来做到这一点?