case "$3" in
-id)
echo "Lines matches with the pattern $4 :"
#grep -oP $4 $2
;;
esac
答案1
您可以尝试以下 awk 命令:
awk -F"|" '$2 ~ /^9/ && $3 ~ /^9/ { print $2,$3 }' filename
输出在第二个和第三个单词之间包含空格,但您可以根据您的需要使用 OFS 设置它。
编辑 :
你的程序将如下所示:
case "$3" in
-id)
echo "Lines matches with the pattern $4 :"
filename=$2
id=$4
echo "`grep "^$id" $filename | awk -F"|" -v ID="$id" '$1==ID'|awk -F "|" '{print $2,$3,$5}'`"
;;
esac