当前位置: 首页 > 面试题库 >

sed返回“ sed:命令乱码”

杜成和
2023-03-14
问题内容

我在file.txt中有以下数据:

1234-abca-dgdsf-kds-2;abc dfsfds 2
123-abcdegfs-sdsd;dsfdsf dfd f
12523-cvjbsvndv-dvd-dvdv;dsfdsfpage

我想将字符串替换为“-”之后的字符串,最多替换为“;” 只需加上“;”,就可以得到:

1234;abc dfsfds 2 
123;dsfdsf dfd f 
12523;dsfdsfpage

我尝试使用以下命令:

sed -e "s/-.*;/;" file.txt

但这给了我以下错误:

sed命令出现乱码

为什么会这样呢?


问题答案:

这应该工作:

sed 's/-.*;/;/g' file > newFile


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

  • 我正在尝试向一个大约有500行的文件中添加几列,但现在让我们假设我使用的是一个有500行的文件。 我有两个命令。一个sed命令和一个awk命令

  • 问题内容: 我正在用于在运行时更新json配置文件。有时,当模式在json文件中不匹配时,仍然会以返回码0退出。 返回0表示成功完成,但是如果找不到正确的模式并更新文件,为什么返回0?有没有解决方法? 谢谢! 问题答案: 如@cnicutar所评论,命令的返回码表示命令是否成功执行。与您在代码/脚本中实现的逻辑无关。 因此,如果您有: sed将返回,但是如果您编写一些语法/表达式错误,或者输入/文

  • 问题内容: 有人可以帮我摆脱Jenkins groovy脚本中的sed shell命令吗? 好辛苦 问题答案: 三重双引号()字符串文字语法允许变量/表达式替换(插值),因此反斜杠()被解释为特殊字符“转义”。由于第一个打开的括号不是这样的特殊字符,因此Groovy编译失败。如果要在结果字符串中使用文字反斜杠,则需要转义反斜杠。也就是说,使用双反斜杠()代替一个文字反斜杠。 从而:

  • 问题内容: 我试图从Java 运行命令而没有成功。这是我的Java代码: 我也尝试过: 问题是,如果我打印出的内容并在终端中运行它,它将起作用。由于某种原因,它只是不从Java执行。更清楚地说,当我直接从终端运行命令时,“ items.xml”文件就会更改。当我从Java运行它时,文件不会更改。我已验证该命令正确无误,如下所示。 我想念什么吗? cmd的输出是 **编辑 我根据以下评论进行了以下更

  • 我有一个多行匹配的pcregrep命令,我想把它转换成awk或sed命令,因为我需要它在一台没有pcregrep的机器上(OS X)。 原始命令: 它输出包含字符串“baseTX”的接口名称(这是我发现的唯一可靠地找出MacBook上以太网接口名称的方法)。对我来说是“en4”。 输入文本如下所示: 我怎么能用awk或se抓取“en4”?我试了一个小时,但我只是不擅长se和awk。