linux - 如何在第二组单引号之间制作awk抓取字符串

标签 linux bash awk

请帮忙,这让我发疯。

我有一个标准的 Wp-config.php 文件,我试图让 awk 在一行中只输出数据库名称、数据库用户名和密码,但无论我尝试什么,它都会吐出无关紧要的内容废话或语法错误。

define('DB_NAME', 'pinkywp_wrdp1');

/** MySQL database username */
define('DB_USER', 'pinkywp_user1');

/** MySQL database password */
define('DB_PASSWORD', 'Mq2uMCLuGvfyw');

期望的输出:

pinkywp_wrdp1 pinkywp_user1 Mq2uMCLuGvfyw

实际输出:

./dbinfo.sh: line 28: unexpected EOF while looking for matching `''
./dbinfo.sh: line 73: syntax error: unexpected end of file

最佳答案

使用 GNU awk:

使用 ' 作为字段分隔符,如果当前行包含 5 列,则打印第 4 列的内容并带有尾随空白。

awk -F "'" 'NF==5 {printf("%s ",$4)}' file

输出:

pinkywp_wrdp1 pinkywp_user1 Mq2uMCLuGvfyw 

关于linux - 如何在第二组单引号之间制作awk抓取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48756085/

相关文章:

用于验证 Linux 磁盘空间输出的 Python 脚本

linux - 带参数 "\"的 bash shell 脚本

python - 在 Windows 中使用 Bash 模块运行 Python 脚本

bash - 用 awk 分隔连接的列

linux - 如何以给定的线/秒速率制作 cat/tac 流?

regex - 修改正则表达式以添加新功能

awk: "default"如果没有匹配的模式怎么办?

awk - 获取模式匹配前后的所有行,直到出现空行

linux - 如何在 linux 中的许多文件的开头添加多行?

bash - 使用 Linux 工具将多行 csv 转换为单行