linux - 直接从命令输出中获取带有特定文本的行的第二列

标签 linux bash shell

<分区>

我正在尝试提取多行命令输出的第二列中的文本。

该命令显示如下输出。

Nginx configuration  wp basic (enabled) 
PHP Version      7.0    
HHVM             disabled    
SSL          enabled    
SSL PROVIDER             Lets Encrypt    
SSL EXPIRY DATE          Wed Apr 11 06:29:29 UTC 2018

access_log       /var/www/website.com/logs/access.log    
error_log        /var/www/website.com/logs/error.log    
Webroot          /var/www/website.com    
DB_NAME          certainDBName    
DB_USER          certainDBUser    
DB_PASS          passwordString

我想从命令输出中读取 DB_PASS 行并将 passwordString 直接从我的第一个命令输出中提取到一个变量,而不写入文件。

最佳答案

使用单个 awk 命令:

pass_str=$(awk '/^DB_PASS/{ print $2; exit }' file)

$ echo "$pass_str" 
passwordString

关于linux - 直接从命令输出中获取带有特定文本的行的第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202891/

相关文章:

c - 如何在C编程中使用rdtsc估计for循环的开销

bash - .bashrc 不是来自 Intellij IDEA 的终端

shell - Mysqldump through netcat in 3 server constellation

linux - 如何使 rsync 从 STDIN 读取 SRC?

linux - 像 exec() 这样的东西在 Perl 中返回一个值?

java - 如何在 Linux 上查看 java bit 版本?

c - 在 gcc 中编译 SHA1( ) 函数失败。 c语言

linux - 通过 Bash Shell 脚本从 url 列表中提取父域名

bash - 如何使用 ffmpeg 在一个视频中随机添加多个音频?

c - 使用/将Linux shell命令 "echo 1=200 >/dev/mydevice"转换为c程序