问题标签 [gnu-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.
sed - GNU sed 在附加文本时指定结束位置
我想sed在匹配模式时做两件事:
- 用字符串替换模式
- 在此行之后附加另一个字符串
比如一个文本文件中的原始内容是:
我想替换123到并在该行之后XXX追加:YYY
我试图这样做sed '/123/{s/123/XXX;a\YYY\}',但它给出了一个错误:Unmatched "{"。
似乎该命令a将其后的所有字符视为要附加的文本。那么我怎样才能知道append 文本a的结束位置呢?
bash - sed 命令不识别撇号
在我的 bash 脚本中,我试图用 csv 文件中的两个撇号('')替换所有撇号('),以便将其提交到 postgres 数据库。如您所知,postgres 查询中的所有单引号都需要用撇号转义。
我不能在查询中的变量周围使用双引号,因为它们也有双引号。因此,除了使用 sed 进行毯子替换之外,没有简单的方法。我尝试了以下方法,但无济于事:
有人对我如何使它起作用有想法吗?
bash - GNU sed、^ 和 $ 与 | 当第一个/最后一个字符匹配时
当进行包含类似^|.REGEXP 的替换时,如果第一个字符匹配,则 sed 与模式空间开头的空字符串不匹配。如果最后一个字符匹配,它也不匹配结尾。这是为什么?
以下是一些123用作输入的示例(带有-r选项):
使用\`而不是^.
我试过 GNU sed 版本 4.2.1 和 4.2.2
sed - 为什么“sed -n -i”会删除现有文件内容?
运行 Fedora 25 服务器版。sed --version给了我sed (GNU sed) 4.2.2通常的版权和联系信息。我创建了一个文本文件sudo vi ./potential_sed_bug。Vi 将这个文件的内容(:set list启用)显示为:
然后我运行以下命令:
sudo sed -n -i.bak /please/a\testing ./potential_sed_bug
在我们讨论结果之前;这是sed 手册页的内容:
-n, --quiet, --silent 禁止自动打印模式空间
和
-i[SUFFIX], --in-place[=SUFFIX] 就地编辑文件(如果提供扩展名,则进行备份)。默认操作模式是断开符号链接和硬链接。这可以通过 --follow-symlinks 和 --copy 进行更改。
我还查看了其他 sed 命令参考以了解如何附加 sed。根据我对我所做研究的理解;生成的文件内容应为:
但是,运行sudo cat ./potential_sed_bug会给我以下输出:
鉴于这种差异,我对我运行的命令的理解是否不正确,或者 sed/环境是否存在错误?
bash - sed 在第 N 次出现后追加文本
我有以下脚本的模板,我需要PARAM为每种情况插入不同的值。
我刚刚找到了一个如何为第一种情况插入值的示例PARAM:
但是对于案例 2 和案例 3,我该怎么做呢?
bash - sed 给出:sed:无法读取:没有这样的文件或目录
我有以下bash脚本,它对找到的每个图像重复。它需要遍历所有html、css和js文件,并替换该文件中所有出现的图像。
但是,当我运行脚本时sed:
sed: can't read : No such file or directory
在 StackOverflow 上我发现sed: can't read : No such file or directory但我已经引用了{}
当我回显sed命令并在命令行上手动执行它时,没有错误。
我在 Raspbian GNU/Linux 8.0 (jessie) 上使用 GNU sed v4.2.2
有人看到这里可能出了什么问题吗?
sed - sed :在特定数量的空格而不是字符后添加换行符
我想在 48 个空格后在我的 txt 文件中添加换行符。
这是文本行
我想在每行(48 行)中有 48 列(像素值)。
我试过这个:
但这对我不起作用,因为这会在 48 个字符后添加换行符,问题是像素值具有不同的位数(1、2 和 3 位数)。
我怎样才能做到这一点 ?
regex - 使用 GNU sed (macOS) 4.4 将一个捕获组替换为另一个
我查看了其他一些外围问题,但无法找到解决我的问题的方法,所以如果这与我错过的内容重复,我很抱歉。
基本上,我有以下 GNU sed 命令:
这应该用该行的最后一个单词替换一行的第一个单词。
第一个正则表达式^(\w)+效果很好,并且匹配每行的第一个单词。问题是该命令将第一个单词替换为文字字符串(w)+$
我试图逃避反斜杠、括号、运算符,但我没有运气让正则表达式在命令的输出部分工作。
可以使用正则表达式捕获组来替换不同的正则表达式捕获组吗?什么需要转义,或者需要使用什么替代语法?
笔记
我在 macOS 上使用来自 brew installed coreutils 的 GNU sed,因此这个问题的答案可能不适用于其他版本的 sed,例如 macOS 上的本机 BSD。
macos - 如何在 MacOS 上将尖括号中的字符串转换为大写?
我在 MacOS 10.12 中工作,我有 100 个文件,例如:
我一直在尝试将 <> 中的所有项目转换为大写,以查看文件如下所示:
我尝试使用:
我也尝试过使用 gsed (自制):
但我得到的只是文件本身的内容到标准输出。
我该怎么做呢?
最亲切的问候!
sed - sed:记住第二个表达式中的捕获
我试图找到捕获模式的出现并在下一行之前添加捕获的模式。
例如:
预期输出:
这是我所拥有的:
我该如何Shape {替换DEF tank Shape {?
谢谢
燃气轮机