|で区切られた単語を含むファイルから{9で始まる}行の2番目と3番目の単語を抽出するには? [閉鎖]

|で区切られた単語を含むファイルから{9で始まる}行の2番目と3番目の単語を抽出するには? [閉鎖]
 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

おすすめ記事