출력 줄에서 두 번째 인용 문자열을 추출합니다.

출력 줄에서 두 번째 인용 문자열을 추출합니다.

특별히 추출해야 하는 세 개의 따옴표가 포함된 출력 줄이 있습니다.두번째변수에 참조됩니다. 예를 들어, 명령을 사용하면 cmd | grep tokens다음과 같은 출력이 표시됩니다.

산출

"abcde", "12345", "zyxwv"

나는 거기에서 나가야 한다 12345. 내가 얻은 가장 가까운 것은 | cut '\"' -f2명령에 추가하는 것이었지만 "abcde"를 반환합니다. 첫 번째 견적 대신 두 번째 견적을 받으려면 어떻게 해야 합니까?

답변1

명령 기술을 향상 시키십시오 cut. "각 선행 필드가 평가 되도록 구분 기호를 지정합니다 ".

예를 들어

첫 번째 이전에는 "다음과 같은 것이 없었습니다.

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f 1
[empty]

두 번째 "전에abcde

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f2
abcde

세 번째가 "오기 전에,

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f3
, 

따라서 예상되는 결과는 네 번째가 됩니다.

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f4
12345

백슬래시를 피하는 것이 당신을 괴롭히지 않기를 바랍니다.

답변2

이것이 당신이 달성하고 싶은 것입니까?

variable=$(cmd | grep tokens | cut -d',' -f 2 | sed 's/ //')

답변3

우리는 간단히 awk를 사용하여 할 수 있습니다

예를 들어:

[User@test ~]$ echo "abcde", "12345", "zyxwv" awk -F"," '{Print $2}' 12345

출력이 cmd에서 나오는 경우

변수='<cmd> | awk -F"," '{print $2}'

관련 정보