我们使用的是 Debian 11。我想使用 grep 和 awk 从单个文件的内容中检索信息,如下所示:
文件:/home/user/directory/otherdirectory/data.txt
文件内容:
$db['data_config']['hostname'] = 'localhost';
$db['data_config']['username'] = 'userbitch';
$db['data_config']['password'] = 'HD3hdkskdks343kdksk43';
$db['data_config']['database'] = 'userbitch_database';
当我直接使用 shell 时,此命令给出了准确的结果:用户婊子
$ CONF="/home/user/directory/otherdirectory/data.txt"
$ grep 'data_config' $CONF | grep 'username' | awk -F\' '{ print $6 }'
但是当我在 shell 脚本(exec.sh)中应用此命令时,它返回错误:
./exec.sh: line n#: grep: command not found
./exec.sh: line n#: grep: command not found
./exec.sh: line n#: awk: command not found
我尝试了一些调试组合,例如 /$6 怀疑谋杀是 awk 变量的美元符号。如何在不使用 awk 的情况下获取封装在单引号中的“data_config”字符串的结果?是否存在不会抛出错误的正则表达式或打印变量的其他组合?
非常感谢您的关注。