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
出力には2番目の単語と3番目の単語の間にスペースが含まれていますが、必要に応じて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