问题标签 [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.
perl - Substituting text in a file within a Perl script
I am using webmin and I am trying to change some settings in a file. I am having problems if the person uses any weird characters that might trip up sed or Perl using the following code:
Where execute_command is a webmin function to basically run a special system call. $pref
is the preference name such as "SERVERNAME", "OPTION2", etc. and $in{Pref}
is going to be the option I want set for the PREF. For example here is a typical pserver.prefs
:
Therefore, if we wanted to change SERVERNAME to say Tes"t#&^"@'"@@& and OWNERPASSWORD to *@(&'"@$"(')29 then they would be passed in as $in{Pref}
. What is the easiest way to escape the $in{}
variables so that they can work OK with sed, or better yet, what is a way I can convert my sed command to a strictly Perl command so that it doesn't have errors?
Update:
Awesome, now I'm just trying to get it to work with and I get this error:
This does not work:
This does:
regex - 在程序中模拟 -pi 的实际 Perl 代码是什么?
这似乎是多余的,从 Perl 脚本本身运行 perl。
模拟 -pi 的实际 Perl 代码是什么?我只想要在 Perl 上像 sed 一样工作的东西,尽可能简单。
根据 Todd Gardner 的网站,它似乎基本上只是读取和写入所有文件,试图将正则表达式应用于每一行。对于像我这样的新手 Perl 用户来说,这个解决方案有点复杂,所以我使用以下方法简化了它:
使用两个打开有什么问题吗?应该避免这种情况还是简单的解决方案可以?
我必须承认,系统 sed 命令更简单、更干净。
bash - 从文本文件中获取分隔文件名列表
我对 Bash 真的很陌生,所以这对你们大多数人来说可能听起来很傻。我正在尝试从文本文件中获取一些文件名的列表。尝试使用 sed 和 awk 执行此操作,但以我有限的知识无法使其工作。
这是一个示例文件内容:
我想从这个示例中得到一个包含这个确切内容的新文本文件:
/Volumes/Secondary500/Temp/Untitled-2_Layer 1 copy 2.pdf
/Volumes/Secondary500/Temp/Untitled-2_Layer 1 copy.pdf
/Volumes/Secondary500/Temp/Untitled-2_Layer 1.pdf
我想告诉 sed 打印 ' font-size"10">
' 和 ' </tspan>
' 之间的所有匹配条目,但是......我得到的最好的是一个文件,其中整行包含我的字段分隔符。
如果你能解释完成的每一步,那就太好了。
- 文件名可能或多或少。这3个只是一个例子。
bash - 在 sed 表达式中转义替换字符串中的“\”字符
我正在尝试使用一行文字,例如
并将其更改为(我希望 bash 颜色代码为输出着色,而不是显示在屏幕上)
使用 bash 颜色代码对星号进行着色,使其更加突出。我有一个 sed 命令可以完成大部分操作,但它不能正确处理颜色代码,因为它将它们视为对替换文本的引用。
到目前为止我所拥有的:
在我在开头给出的字符串上运行时会产生以下输出:
它采用 \033 的 \0 并将其替换为原始字符串。将替换字符串中的反斜杠加倍没有区别;我仍然得到相同的输出文本。
如何将 bash 颜色转义插入 sed 替换表达式?
sed - sed:替换一行的一部分
如何用 sed 替换一行的一部分?
线
应改为:
值 xxx 可以变化,并且在 dbservername 和值之间有两个选项卡。此名称-值对是配置文件中的许多对之一。
我尝试使用以下反向引用:
这导致了一个错误:'s' 命令的 RHS 上的无效引用 \1。
表达有什么问题?使用 GNU sed。
unix - 在 UNIX 中具有相似文件名的重复文件
我在一个名为的目录中有一组文件:
我使用什么 UNIX 命令(find、cp、xargs、sed?)将这些命令复制到
这样 x ->copy-> x 和 y ->copy -> y
我有 find .. 开始的命令的一部分,它选择文件,但我被困在那里。
编辑 显然,我想保留原件和副本,所以重命名对我来说并不能解决问题。
regex - sed 替换 tinydns 区域文件中的 TTL?
我正在努力替换一些 tinydns 区域文件中的大量 TTL。无论 TTL 当前设置为什么,我都希望它变为 900。我正在寻找一些 sed 魔法,而且我似乎快到了。
我有大约 50 个主机名来替换 TTL,并且这些区域是零星分配的。
区域文件中的行不需要包含 TTL。如果他们没有,则需要附加 TTL。换句话说,我将要搜索的行如下所示:
例如
所以我需要帮助来为我的 sed 命令构建正则表达式。这将是这样的:
任何 sed 大师都觉得慷慨吗?
regex - 在已知文本块中插入一行
我将文本“块”定义为文件开头、换行符或文件结尾之间的所有行:
任何文本都可以占据一个块 - 不知道那里有哪些行。我尝试编写一个 shell 脚本在第二个块插入一个新行,但由于 sed 不喜欢使用换行符,我绕过了这个 sed oneliner:
这导致:
问题是,它在缓冲区的开头添加了一个换行符(标记为 [newline] 因为 StackOverflow 的标记无法显示它)是否有另一种方法可以使用不同的工具或不同的正则表达式来做到这一点?
regex - sed中的非贪婪(不情愿)正则表达式匹配?
我正在尝试使用 sed 清理 URL 行以仅提取域。
所以从:
我想:
(无论有没有斜杠,都没有关系)
我试过了:
和(转义非贪婪量词)
但我似乎无法让非贪婪量词 ( ?
) 工作,所以它总是最终匹配整个字符串。
shell - 将行插入文件中特定位置的简单方法
我需要将字符串插入文本文件,例如,在末尾的第一行之前。
您能建议执行此操作的简单方法吗?谢谢