linux - 从字符串中抓取特定的文本部分

标签 linux bash sed awk grep

我有一个字符串,我需要将其分成两部分 - 由于它是一个 PHP 语言文件,所以它们各不相同。希望有人能帮忙,字符串是:

$_LANG['FIELD1'] = "FIELD2";

我需要获取 FIELD1 和 FIELD2

最佳答案

应该这样做:

# space seperated
$ sed -n "s/.*_LANG\['\([^']*\)'] = .\(\w*\).*/\1 \2/p" file
FIELD1 FIELD2

# newline seperated 
$ sed -n "s/.*_LANG\['\([^']*\)'] = .\(\w*\).*/\1\n\2/p" file
FIELD1
FIELD2

或者使用 greppositive lookbehind :

$ grep -Po "(?<=_LANG\[')[^']*" file
FIELD1

$ grep -Po '(?<=_LANG\[.FIELD1.\] = ")[^"]*' file
FIELD2

关于linux - 从字符串中抓取特定的文本部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202619/

相关文章:

python - 如何在 Python 中获得读/写磁盘速度?

c# - 如何在 C# 中运行 Windows bash

bash - 将命令输出拆分为行数组

bash - 想要通过将命令的输出重定向到变量来检查命令是否成功

reactjs - 如何使用 yarn 而不是 npm 创建 react 应用程序?

python - 如何 GREP 单词,而不是包含特定字符的行,并打印整个单词

bash - 使用 nc 传输文件时的空文件

bash - sed 从文件中删除第一行

sed - 将不以特定正则表达式开头的行添加到上一行

replace - sed 在上一行的字符串匹配后替换第一次出现的字符串