【问题标题】:Let's say I have a long HTML file that includes the string "USER_NAME='FOO BAR'". How do I just extract FOO BAR using BASH?假设我有一个包含字符串“USER_NAME='FOO BAR'”的长 HTML 文件。如何使用 BASH 提取 FOO BAR?
【发布时间】:2016-02-22 07:01:59
【问题描述】:

我有一个长 html 文件,我想提取一个与变量名关联的值。我认为这需要使用 grep、awk 或 sed。

文件中的一个示例:“USER_NAME='Foo Bar X. 1003. User since 2003.'” 单引号是唯一的分隔符。

【问题讨论】:

  • 我想我应该更清楚地说明 USER_NAME 条目可以是任意长度。

标签: string bash awk grep extract


【解决方案1】:

试试(又快又脏)

grep -oP 'USER_NAME=\K\S+' your.html
grep -oP "USER_NAME='\K[^']+" your.html
grep -oP 'USER_NAME="\K[^"]+' your.html

更新

由于您没有提供任何示例数据,请尝试以上 3 行,希望其中之一对您有用。

【讨论】:

  • 这个不行,因为用户名不止一个字。
  • @MatthewKlinestiver 然后举一个更好的例子。有报价吗?还是别的什么?
【解决方案2】:

假设每个配置都在换行符上,并且 = 也不能在用户名中...

grep ^USER_NAME your.html | awk -F "=" '{print $2}'

两步:

1) 检索文件中以 USER_NAME 开头的行

2) 用 "=" 分隔符分隔行并打印第二个值

【讨论】:

  • 不幸的是,配置不在新行上。此外,它们的长度可以超过 2 个字。
  • 您的文件是如何分隔的?可以发个样品吗?
猜你喜欢
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 2022-11-04
  • 2014-03-20
相关资源
最近更新 更多