使用sed或awk用单引号替换反引号

MatúšFrisík

我想在PHP shell_exec()内使用sed或awk在特定文本文档中用´引号(替换所有反引号(),'而不使用十六进制或八进制代码。

首先,我尝试了在shell脚本中运行的以下命令:

sed -e 's/´/'"'"'/g' file.txt;
sed -e 's/\´/'"'"'/g' file.txt;
sed -e 's/´/'/g' file.txt;
sed -e 's/\´/'/g' file.txt;
sed -e 's/"´"/'"'"'/g' file.txt;
awk '{gsub(/\´/, "\'" ) }1' file.txt;

但是这些都不起作用。

input.txt文件示例:

abc´def´123`foo'456;

output.txt文件的示例:

abc'def'123`foo'456

使用从终端运行的sed命令,此解决方案有效:

echo "a´b´c;" | sed "s/´/'/g"

输出为:

a'b'c;

但是从可执行文件test.sh运行它:

#!bin/bash
sed "s/´/'/g" input.txt > output.txt

作为由命令执行的shell脚本

bash test.sh

它不起作用,并且output.txt文件的内容与input.txt文件的内容相同。

但是,使用正向滴答时,它的工作原理和结果

#!bin/bash
sed "s/\`/'/g" input.txt > output.txt

是带有内容的output.txt文件

abc´def´123'foo'456;

但是,当我尝试使用字符的十六进制或八进制表示形式用单引号替换向后的滴答时,它就像一种魅力。

使用sed:

input.txt  - abc´def´123`foo'456;
command    - sed 's/\xB4/'"'"'/g' input.txt > output.txt;
output.txt - abc'def'123`foo'456

使用awk:

input.txt  - abc´def´123`foo'456;
command    - awk '{gsub(/\264/, "\047" )}1' input.txt > output.txt;
output.txt - abc'def'123`foo'456

问题是,我正在使用另一个脚本,该脚本具有上述脚本,该脚本用其文字表示形式替换了每个十六进制或八进制代码。我可以用另一种方式做到这一点,我很好奇是否可以在不使用十六进制或八进制代码的情况下使用上述替换项。

阿努巴瓦

您可以使用tr适当的引用:

s='abc´def´123´foo'

tr '´' "'" <<< "$s"
abc'def'123'foo

tr在文件上运行

tr '´' "'" < file

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sed或awk用单引号替换反引号

来自分类Dev

regex使用postgres regexp_replace()用单引号替换反斜杠和单引号

来自分类Dev

使用sed替换包含引号和单引号的文本

来自分类Dev

用双引号替换单引号php

来自分类Dev

用sed插入单引号

来自分类Dev

在Python中用反斜杠单引号替换单引号

来自分类Dev

当有多个单引号数据时,使用 sed 或 awk 或 grep 在单引号之间提取数据

来自分类Dev

groovy用单引号和双引号替换双引号

来自分类Dev

groovy用单引号和双引号替换双引号

来自分类Dev

使用Awk删除引号(双引号或单引号)

来自分类Dev

从双引号替换为单引号时从终端sed

来自分类Dev

Preg用单引号替换模式混淆

来自分类Dev

用双引号替换JSON对象值单引号

来自分类Dev

用双引号替换所有连续的单引号对

来自分类Dev

用括号将双引号替换为单引号

来自分类Dev

awk中的单引号

来自分类Dev

反斜杠单引号\'

来自分类Dev

使用sed替换双反斜杠,后跟引号(\\')?

来自分类Dev

用单引号内插

来自分类Dev

SED:单引号后替换字符串

来自分类Dev

在sed替换字符串中转义'(单引号)

来自分类Dev

使用sed替换两个字符之间的单引号

来自分类Dev

使用sed替换文本,并在其中添加单引号

来自分类Dev

使用sed命令替换包含某些单词的行中单引号内的值

来自分类Dev

sed中单引号的反斜杠转义会产生错误

来自分类Dev

用awk将双引号替换为双引号

来自分类Dev

sed中的单引号和双引号

来自分类Dev

将双引号替换为单引号?

来自分类Dev

awk单引号或双引号用法