我正在尝试更换参数,以便在使用AWK搜索文件中的字符串时更改值。
这可能吗?我这样做。DisplayMessage()
{
##Parameter 1 = Message ID.
MessageFile="/dev/fs/C/Users/salasfri/Desktop/Messages.txt"
Message=$(awk '$1 ~ /^'$MessageID'$/ {$1=""; print $0}' $MessageFile)
}
消息文件在“MessageFile”文件中查找:
0005 The file ${1} was not tranmitted.
它搜索0005并收到消息“文件$ {1}未被传输。”
我想用文件名
替换$ {1} 使用awk可以实现这一点吗?任何想法?答案 0 :(得分:1)
这应该做......
awk '$1~/^'$MessageID'$/ {$1=""; sub("\\${1}",FILENAME); print}'
但也许你想改成
awk -v mid="${MessageID}" '$1==mid {$1=""; sub("\\${1}",FILENAME); print}'
因为您正在寻找完全匹配,而不是模式匹配。最好使用awk变量而不是引用舞蹈。