首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本替换bash脚本

文本替换bash脚本
EN

Stack Overflow用户
提问于 2014-01-25 13:05:27
回答 4查看 212关注 0票数 2

我希望将a'替换为à,将e'替换为è等,将其替换为具有如下脚本的文件:

代码语言:javascript
复制
#!/bin/sh
if [ -e "$1" ]
then
  sed  's/a'/\à/g' -i "$1";
  sed  's/e'/\è/g' -i "$1";
  sed  's/i'/\ì/g' -i "$1";
  sed  's/o'/\ò/g' -i "$1";
  sed  's/u'/\ù/g' -i "$1";
else
  echo "File not found!"
fi

但我知道这个错误:

Syntax error: Unterminated quoted string

我不知道怎么写'

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-25 13:06:42

是的,有语法问题,请尝试如下所示的sed命令:

代码语言:javascript
复制
sed -i "s/a'/à/g" "$1"
sed -i "s/e'/è/g" "$1"
sed -i "s/i'/ì/g" "$1"
sed -i "s/o'/ò/g" "$1"
sed -i "s/u'/ù/g" "$1"

问题是您使用的是嵌套单引号(在代码中引用)。

票数 4
EN

Stack Overflow用户

发布于 2014-01-25 13:08:24

退出单引号,然后放入转义引号,然后启动另一个单引号字符串:

代码语言:javascript
复制
sed  's/a'\''/\à/g' -i "$1"
票数 4
EN

Stack Overflow用户

发布于 2014-01-25 14:38:10

代码语言:javascript
复制
awk '{ gsub(/e'\''/,"è"); print}' "$1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21350922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档