특별히 추출해야 하는 세 개의 따옴표가 포함된 출력 줄이 있습니다.두번째변수에 참조됩니다. 예를 들어, 명령을 사용하면 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}'