Bash 从键链输出中删除字符串

Bash 从键链输出中删除字符串,bash,shell,awk,sed,cut,Bash,Shell,Awk,Sed,Cut,跑步后 test=$security 2>&1>/dev/null查找通用密码-ga-test-echo $test 输出是 密码:1234 我想删除所有内容,只保留实际密码,在这种情况下,只需 1234 有任何帮助吗?如果格式始终为password:value,则无需任何外部实用程序,只需使用子字符串扩展即可有效地执行此操作: echo "${test:11:-1}" #output: 1234 如果您坚持使用其他实用程序: awk -F'"' '{ print $2 }' <<

跑步后

test=$security 2>&1>/dev/null查找通用密码-ga-test-echo $test

输出是

密码:1234

我想删除所有内容,只保留实际密码,在这种情况下,只需

1234

有任何帮助吗?

如果格式始终为password:value,则无需任何外部实用程序,只需使用子字符串扩展即可有效地执行此操作:

echo "${test:11:-1}" #output: 1234
如果您坚持使用其他实用程序:

awk -F'"' '{ print $2 }' <<< "$test" #output: 1234
cut -d'"' -f2 <<< "$test" #output: 1234
您可以通过以下方式解决此问题:

命令:

 echo 'password: "1234"' | awk -F"\"" '{print $2}'
输出:

1234
在Grep中使用与Perl兼容的正则表达式 如果您的系统具有使用PCRE引擎编译的grep,例如pcregrep或对grep-p的支持,则可以将pcregrep-o':\K[^]+'放入管道中。例如,要仅将引号之间的材料发送到标准输出,请执行以下操作:

$ echo 'password: "1234"' | pcregrep -o ': "\K[^"]+'
1234

$ echo 'password: "ABCD"' | pcregrep -o ': "\K[^"]+'
ABCD

$ echo 'password: "1A2B3C4D"' | pcregrep -o ': "\K[^"]+'
1A2B3C4D

在上面运行awk-F\{print$2}它做到了!谢谢你的快速帮助,很高兴它能帮上忙。请核对我的答案或投赞成票:
$ echo 'password: "1234"' | pcregrep -o ': "\K[^"]+'
1234

$ echo 'password: "ABCD"' | pcregrep -o ': "\K[^"]+'
ABCD

$ echo 'password: "1A2B3C4D"' | pcregrep -o ': "\K[^"]+'
1A2B3C4D