이 행에서 데이터를 어떻게 추출할 수 있나요?

이 행에서 데이터를 어떻게 추출할 수 있나요?
xyz /mnp/opq/p/1926081/sp/192608100/serveFlavor/entryId/0_ffx7sljc/v/2/flavorId/0_,n6h1xlhl,ea3anltg,jfs8boo9,w2v1vsk2,ze8e1q2s,to8w2p18,/forceproxy/true/name/new

이 행에서는 부품이 ,n6h1xlhl,ea3anltg,jfs8boo9,w2v1vsk2,ze8e1q2s,to8w2p18,가변적이므로 부품의 쉼표 사이의 데이터 양이 다소 많을 수 있으며 xyz /mnp/opq/p/1926081/sp/192608100/serveFlavor/entryId/0_숫자 값 1926081 또는 192608100이 증가하거나 감소할 수 있다는 점을 제외하면 모든 것이 일정합니다. /forceproxy/true/name/new또한 상수이고 변하지 않습니다.

,n6h1xlhl,ea3anltg,jfs8boo9,w2v1vsk2,ze8e1q2s,to8w2p18, is included and rest is deleted including any comma and the initial내가 원하는 출력은 패턴 xyz의 마지막 값 뿐입니다`

따라서 다음과 같아야 합니다. /mnp/opq/p/1926081/sp/192608100/serveFlavor/entryId/0_ffx7sljc/v/2/flavorId/0_to8w2p18/forceproxy/true/name/new

답변1

awk 'BEGIN {FS="[, ]"} {print $2$(NF-1)$NF}' input_filename

답변2

munish.txt제공한 샘플 데이터를 포함하는 경우 다음을 수행하세요.

$ sed -e 's/^[^ ]* //; s/,.*,\([^,]*\),/\1/' munish.txt
/mnp/opq/p/1926081/sp/192608100/serveFlavor/entryId/0_ffx7sljc/v/2/flavorId/0_to8w2p18/forceproxy/true/name/new

sed스크립트는 첫 번째 공백까지 한 줄의 모든 항목과 ,첫 번째부터 두 번째, 마지막까지의 모든 항목을 삭제합니다 ,. 마지막 항목도 삭제하세요 ,.

답변3

이상한 방법을 알아냈습니다. v변수에 행 전체가 포함되어 있으면 보기에 좋지 않습니다.

echo $(echo ${v%%,*})$(echo ${v} | grep -Po '.*,\K.*(?=,)')$(echo ${v##*,}) | sed 's/xyz\s//p'

관련 정보