当前位置: 首页 > 知识库问答 >
问题:

sed中的-n参数防止替换[duplicate]

宋宇
2023-03-14

假设我们想用它的摩尔斯码替换字母“a”,从text.txt文件到使用sed的隐藏的.out.txt文件,原始文件的内容是“这是一个测试”。

#!/bin/bash
touch .out.txt
cat text.txt > .out.txt
sed 's/a/.-/g' .out.txt

正如预期的那样,输出是“this is.-test”。
但是,假设我们希望执行sed的多个实例,而不需要使用-n参数不断打印sed的每个实例的结果。在这种情况下:

#!/bin/bash
touch .out.txt
cat text.txt > .out.txt
sed -n 's/a/.-/g' .out.txt
sed -n 's/t/-/g' .out.txt
cat .out.txt

然而,在这种情况下,cat的输出与text.txt的内容相同,“这是一个测试”。
是否有一种可能的替代-n的方法,或者一般情况下有一种方法可以防止sed打印出任何具有我们想要的结果的东西?

共有1个答案

车思淼
2023-03-14

检查sedssed--help中的-I选项的语法。
这是必要的,因为语法取决于您使用的sed,即我不能简单地告诉您。
然后相应地使用它,使sed的效果在文件上发生。

 类似资料:
  • 问题内容: 我需要替换Linux文本文件中所有出现的控制字符CTRL + A(SOH / ascii 1),如何在SED中实现呢? 问题答案: 可以使用(等同于选项并将其通过管道传递到)完成。 如果控制字符是标题(SOH)字符的开始(CTRL + A / ASCII 1),并且我们希望将其替换为制表符,则可以执行以下操作: 会将SOH字符替换为^ A,然后将其匹配并替换为。

  • 问题内容: 如果我从脚本运行以下命令: 没事。 但是,如果我运行: 我在教程中读到,要从shell替换环境变量,您需要先停止操作,然后对部分进行“引用”,以便不直接替换该部分,这是我所做的,并且仅当该变量在紧接之前定义时才起作用。 我如何被s识别为shell中定义的环境变量? 问题答案: 您的两个示例看起来相同,这使问题难以诊断。潜在问题: 您可能需要双引号,例如 可能包含一个斜杠,在这种情况下,

  • 问题内容: 我对bash / sed没什么问题。我需要能够在sed表达式中使用命令替换。我有两个大文本文件: 首先是logfile.txt, 有时*以 错误ID:0xdeadbeef的格式按ID显示错误消息(常见示例为0xdeadbeef)。 第二个error.txt具有成对存储的错误消息LONG_ERROR_DESCRIPTION,0xdeadbeef 我试图用sed和bash命令替换来完成任务

  • 问题内容: 我有一个带有Name字段的Web表单,我希望它能够接受单撇号,例如名称O’Leary,但是当尝试将此记录推送到SQL 2005服务器时,出现错误。我的问题不是这个。这就是当我尝试使用此语句将记录插入到数据库中时… 我在数据库中得到了O’‘Leary,而不是O’Leary。认为SQL应该将这些双单撇号视为一个撇号??? 问题答案: 使用参数化查询会更好。这些将自动处理单引号,并更好地保护

  • 文件txt只有一行: 我想删除110之后的所有数据。我试过了 它不起作用,为什么? 谢谢

  • 本文向大家介绍magento2 参数替换,包括了magento2 参数替换的使用技巧和注意事项,需要的朋友参考一下 示例