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

sed命令不修改文件[重复]

巫朝明
2023-03-14

我复制/etc/default/keybord并制作一个keyboard2文件。

当我对文件进行分类时,我得到:

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"

然后我ed s/fr/us/keyboard2并立即显示:

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"

但是当我再次使用cat键盘2时,我得到:

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"
                  

用sudo测试,用's/fr/us/'测试

我理解错了什么吗?sed应该写入文件还是需要通过管道覆盖原始文件?非常感谢。

版本:

sed (GNU sed) 4.7
Linux kali 5.9.0-kali5-amd64 #1 SMP Debian 5.9.15-1kali1 (2020-12-18) x86_64 GNU/Linux in Oracle Virtual Box

共有2个答案

公孙弘图
2023-03-14

@sebbit编写的内容应该可以工作,但是sed可以选择直接写入更改文件
只需添加-i标记,这将更改您从中读取的文件,如下所示:

sed -i s/fr/us/ keyboard2
秦承允
2023-03-14

你是对的,因为你理解错了什么。Sed确实不应该覆盖输入文件,因此,正如您所猜测的那样,您必须将输出重定向(管道)到不同的文件,例如:

sed 's/fr/us/' /etc/default/keyboard > keyboard2

然后将keyboard2移动到/etc/default/键盘(不要忘记制作原始文件的备份副本,以防万一)。

 类似资料:
  • 我需要在test.txt文件的第4行插入命令“new file”。 已尝试;我可以看到更改后的文件输出,但当我再次执行时,更改就消失了。

  • - 轻量级流编辑器,一般用来处理文本类文件 sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上 用 sed -i 会实际写入,下面为了演示,都没加该参数,有需要可以自行添加。 基础例子 有一个文件:/opt/log4j2.properties status = error

  • 本文向大家介绍修改linux文件权限命令:chmod命令详解,包括了修改linux文件权限命令:chmod命令详解的使用技巧和注意事项,需要的朋友参考一下 Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将

  • 本文向大家介绍Docker 修改文件是否需要重启(命令详解),包括了Docker 修改文件是否需要重启(命令详解)的使用技巧和注意事项,需要的朋友参考一下 Docker 修改文件是否需要重启               Docker 修改文件是否需要重启,在做项目的时候,经常会修改文件,对于命令不是多了解,用了也是试试的态度,这里就整理下该如何使用,提高工作效率。 需要修改一期项目中的代码了,之前

  • 问题内容: 我在file.txt中有以下数据: 我想将字符串替换为“-”之后的字符串,最多替换为“;” 只需加上“;”,就可以得到: 我尝试使用以下命令: 但这给了我以下错误: sed命令出现乱码 为什么会这样呢? 问题答案: 这应该工作:

  • 主要内容:chmod命令使用数字修改文件权限,chmod命令使用字母修改文件权限既然我们已经知道文件权限对于一个系统的重要性,也知道每个文件都设定了针对不同用户的访问权限,那么,是否可以手动修改文件的访问权限呢? 可以,通过  chmod 命令即可。chmod 命令设定文件权限的方式有 2 种,分别可以使用数字或者符号来进行权限的变更。 chmod命令使用数字修改文件权限 Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代