首页 > 解决方案 > 如何在Bash中提取引号之间的字符串

问题描述

我需要提取文件中引号之间的字符串。

例如:我的文件被调用test.txt,它具有以下内容:

"Hello_World"

我从 bash 中读取如下:

string="$(head -1 test.txt)"
echo $string 

这打印"Hello_World",但我需要Hello_World

任何帮助将不胜感激。谢谢。

标签: linuxbashshell

解决方案


您可以纯粹地执行此操作,bash而无需生成任何外部程序:

read -r line < test.txt ; line=${line#\"} ; line=${line%\"} ; echo $line

实际读取整read行,这两个赋值实际上去掉了行首或行尾的任何引号。

我假设您不想删除字符串本身中的任何引号,因此我将其限制为两端的一个。

它还允许您成功阅读没有前导引号、尾随引号或两者兼有的行。


推荐阅读