问题标签 [ed]

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 投票
1 回答
934 浏览

find - heredocs 如何与 xargs 一起使用?

背景

我希望在发送之前# TODO从一些 python 源代码文件输出中删除任何注释。git archive我希望通过将在各种 *nix 操作系统上运行的脚本来执行此操作,因此它应该尽可能符合 POSIX。

我知道find -print0并且xargs -0不在基本规范中,但它们似乎很常见,我可以很好地使用它们(除非存在更好的替代方案)。ed由于sed -i不在就地编辑的基本规范中,我正在使用它。假设下面的命令是从一个已经解压的 git 存档的目录中运行的。

我很高兴有一个整体的替代解决方案来# TODO删除评论,但为了满足我的好奇心,我还想回答我在我提出的命令中面临的特定问题。

现有代码

预期结果

所有以“.py”结尾的文件都被删除了仅包含 TODO 注释或以 TODO 开头的行尾注释的完整行。

实际结果

(标准输出)

当前理论

我相信<< 'EOF'heredoc 被应用于xargs而不是ed,我不知道如何解决这个问题。

0 投票
1 回答
473 浏览

bash - 如何将 2 变量插入 ed 命令参数?

我正在尝试在 bash 脚本中执行一个 while 循环,但是当我尝试在其参数中插入一个变量时,我不知道 ed (文本编辑器)发生了什么。如您所见,我也在使用循环,但问题似乎在于 ed 命令中使用了变量。

这是脚本代码(显然是 awk 和 sed 程序):

0 投票
1 回答
42 浏览

bash - 如何通过脚本将相同的文本添加到多个文件中?

我想要一种简单的方法来使用一个小脚本将相同的文本(例如“再见”或更多行)添加到一组文件中。我在脚本中尝试了一些东西edvi但它没有用。

编辑:我编辑这个评论更具体:

我有文件 c0001.gin c0002.gin ... 最多可以说 500。我需要在每个文件的末尾添加下一个文本:

我只想要一个脚本来做到这一点。

此外,这些文件位于名为“CALCS”的文件夹中,我想将每个文件移动到 CALCS 内的另一个文件夹,名为“001”的 c0001.gin,“002”的文件 c0002.gin 等等。

提前致谢

0 投票
2 回答
1408 浏览

awk - 使用 sed 或 awk 在两个匹配模式之间插入行

我在 text.txt 中有如下行

每次 patten "end:" 匹配时,我想添加几行(让我们打个招呼)。但忽略以下模式“end:”的出现,直到“start:”模式再次匹配。

所需输出

0 投票
2 回答
137 浏览

xml - 在Unix中替换xml中的特定标签

我想替换特定值(不适用于所有元素)。这里所有人都有相同的 Background_color,但我不想只为特定的一个替换 Background_color。我们该如何实施?这只是一个示例代码。(我将在文件中有皮肤名称列表,我不应该为其替换 Background_color)

0 投票
1 回答
138 浏览

bash - 如何从 ed 命令中删除控制台输出?

我正在使用ed在文件中的特定行号处插入内容。这是我的ed命令的代码部分。

上面的代码工作正常,并将文本打印到指定行号的文件中。但是,每次运行代码时,我都会在控制台上获得输出。例如:

我认为这些数字代表文件 servertest 中的字符数。我意识到在运行代码之前我在未编辑的文件中有 1456 个字符,在运行代码之后有 1534 个字符。有没有办法我不能在控制台上显示这些数字?我尝试将输出定向到dev/nulled在最后一个 END 命令之后不允许任何字符。

0 投票
1 回答
552 浏览

vim - 删除vim中很长一行的单词之间的空格

如何使用删除单个长行中多个单词之间的空格vim

已经试过了:

和这方面的例子。

不工作。

我有一条线是这样的:

使用第一个解决方案中建议的确切代码,它只会删除意图(我用来在 Python 中构建如此长的字符串值的前 4 个空格)并且单词之间没有空格。

Visual Selection- 我的意思是点击shift+v一次选择整行。与 相同^v+$

无论有或没有 vs,我都无法在没有空格的情况下完全达到线。

0 投票
2 回答
186 浏览

linux - 希望 sed 有一个等效于 ed 方便的 j 命令

它一直困扰着我,sed没有j命令,就像ed没有命令一样。

这个问题一般询问如何连接线,并且有很多很好的答案,其中许多具有其他工具,例如awkperl。也有一些sed解决方案,但它们都涉及使用s命令从字面上编辑换行符,这是一种解决方案,由于各种原因让我觉得很笨拙。

现在,sed还有一些与“保持”和“模式”空格有关的晦涩命令,我从来没有弄清楚如何使用。我一直假设 - BICBW - 保留空间是 sed 对j命令的回答,只要我能弄清楚如何使用它。

所以我今天的问题——这既是一个知识分子问题,也是一个实际问题——是,有没有一种好的、安全、合理简洁的方法来做相当于

也就是说,对于包含 pattern 的每一行pat,将其连接到下一行(也就是说,就像ed我使用一样g/pat/j/)。

正如我所说,这在某种程度上是一个智力问题。我知道如何使用其他工具连接行,或者通过在引用的文字换行符上使用sed和命令。s但在我看来,应该有更好的方法。

(或者也许我应该只获取一份副本sed.c并输入正确的j命令。)

0 投票
2 回答
96 浏览

bash - 如何防止 ed 打印匹配结果?

ed在 bash 脚本中使用来搜索文件;该/命令将显示我不想要的内容。我试图重定向>/dev/null 2>&1,但这对我不起作用。

文本文件foo.txt

bash脚本bar.sh

结果:

如何停止ed打印匹配的行b

0 投票
1 回答
74 浏览

editor - ed - 引用控制字符?

如何在 unix ed(1) 中搜索控制字符?

例如

不起作用。\r 也不行。显然 sed(1)、awk(1) 和其他编辑器可以做到这一点,但是 ed 有一个非常有用的 line move (m) 命令,这是我在使用的 bash 脚本中所需要的。

我可以通过直接输入控制字符在脚本中完成我想要的操作(例如,在 vi 中用 Cv 转义,在 emacs 中用 Cq 转义),但这意味着二进制字符必须存在于我的其他可打印文本脚本中。

^M 实际上是字符 0x0d。