Bash 标题的即时翻译

Bash 标题的即时翻译,bash,shell,sed,grep,translation,Bash,Shell,Sed,Grep,Translation,我用多种语言建立我的网站。我经常过于专注于文本,以至于忘记了翻译文件头 title: "This is the title" date: 2020-03-01 shorttext: "Here come the shorttext in for the blog cards" ... 现在的问题是,当我使用grep作为title/shorttext的条目,并通过translation shell命令将其导入时,如何将translation shell的输出保存在title/shorttext的

我用多种语言建立我的网站。我经常过于专注于文本,以至于忘记了翻译文件头

title: "This is the title"
date: 2020-03-01
shorttext: "Here come the shorttext in for the blog cards"
...
现在的问题是,当我使用grep作为title/shorttext的条目,并通过translation shell命令将其导入时,如何将translation shell的输出保存在title/shorttext的双引号中

egrep'shorttext:'$file | sed's/shorttext://g'| trans-brief-e bing:fr
“塞西是我的乳头”
“Ceci est un titre”现在应该写在短文本后面的文件中。有办法实现吗?谢谢你的帮助

问候
Silvio

无论您使用什么命令来获取翻译,您都可以在另一个
sed
命令中使用命令替换,如

sed -E 's/(^shorttext: ).*/\1"'"$(egrep 'shorttext:' $file | sed ...)"'"/' your file

请注意,
sed
substitution命令分为3个字符串,第一个和最后一个用单引号括起来,中间的一个用双引号括起来,以便在其中进行命令替换,
“$(…)”

请将该示例输入的所需输出(无说明)添加到问题中(无注释).
grep
或多或少是一个过滤器,因此只要您在输入上使用它,它就会生成一个包含较少行的输出(在模式不匹配所有行的非平凡用例中)。无论您将此输出输送到何处,都不会返回
grep
命令中不匹配的行。这就是说,您可能必须将您迄今为止编写的整个命令放入一个
$(…)
中,并将其用作另一个外部
sed
命令的替换字符串。此外,您的命令似乎是管道
“下面是博客卡的简短文本”
转换成
trans
出于某种神奇的原因,在这里产生了
“Ceci est un titre”
,这实际上是
“这是标题”
,不是吗?你能澄清一下吗?