행/목록의 패턴을 기준으로 값 추출

행/목록의 패턴을 기준으로 값 추출

아래와 같이 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"

관련 정보