行/リストのパターンに基づいて値を抽出する

行/リストのパターンに基づいて値を抽出する

以下のようにjson出力からリストを抽出しました。

"Rel_70" "Rel_71" "Dev_795" "Dev_796" "Dev_797" "Devtest_10" "Devtest_12"

ここでDev_*を使用して値を抽出したいと思います。つまり、「Dev_795」「Dev_796」「Dev_797」すべての値を抽出することに興味があります。

答え1

すべての「Dev_[digits]」エントリを含めるには、次の手順を実行します。

awk 'BEGIN {RS=" "} /Dev_[0-9]+/ {print}' inputfile

または、具体的には「Dev」項目のみを含めたい場合:

awk 'BEGIN {RS=" "} /Dev_(795|796|797)/ {print}' inputfile

答え2

tr ' ' '\n' < jsonfile | grep '"Dev_'

perl -lne 'print for /"Dev_\d+"/g' jsonfile

while read -ra A; do for a in "${A[@]}"; do case $a in '"Dev_'* ) echo "$a" ;; esac; done; done < jsonfile

答え3

awk 'ORS=" "{for(i=1;i<=NF;i++){if($i ~ /Dev_/){print $i}}}' filename

出力

"Dev_795" "Dev_796" "Dev_797"

関連情報