如何从单词以 | 分隔的文件中提取行{以 9 开​​头}的第二个和第三个单词?

如何从单词以 | 分隔的文件中提取行{以 9 开​​头}的第二个和第三个单词?
 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

相关内容