如何获取字符串中指定单词的下一个单词

时间:2015-07-07 09:22:13

标签: string bash

我在这里搜索了一下,但我找不到任何适合我问题的答案。但如果已经回答,我道歉。

我有一个bash脚本,它连接到不同的oracle数据库以执行不同的操作任务。问题是我想要将我的密码哈希并将它们存储在像这样的字符串中的用户旁边

glFinish

我需要一个函数来获取用户名并将密码返回给我(下一个单词)

关于。

3 个答案:

答案 0 :(得分:2)

使用关联数组代替字符串:

DBAUTH=([user1]=user1password [user2]=user2password ... [userN]=userNpassword)

然后,您可以使用${DBAUTH[$user]}获取用户名的密码。

答案 1 :(得分:0)

这对我有用:

#!/bin/bash

DBAUTH="user1 user1password user2 user2password userN userNpassword"

function getpass () {
    user="$1"
    # Skip invalid users
    if ! grep -wq "$user" <<< "$DBAUTH" ; then return; fi
    # Extract the password
    echo "$DBAUTH" | sed -r "s/.*$user ([^ ]*).*/\1/"
}

运行结果:

getpass user1
user1password
...
getpass user2
user2password
... 
getpass user_invalid
# nothing printed

答案 2 :(得分:0)

与awk在一行:

#!/bin/bash
user="user1"
file="filepath"

awk -F"\"" '{ print $2 }' $file | awk -v username="$user" -F" " '{ for(i=1;i<=NF;i++) if($i == username ) print $(i+1); }'

输出:

  

user1password