주문을 받으려면 다음 출력이 필요합니다.
var="vas-1 vas-2 vas-3 .... vas-10 vas-11"
echo $var | egrep 'vas-[0-9]'
산출:
vas-1
vas-10
vas-11
vas-2
vas-3
..
예상 출력
vas-1
vas-2
vas-3
..
vas-10
vas-11
답변1
Coreutils가 sort
작업을 수행해야 합니다.
$ var="vas-1 vas-2 vas-3 .... vas-10 vas-11"
$ echo "${var// /\\n}"
vas-1
vas-10
vas-11
vas-2
vas-3
..
# Sorted
$ echo "${var// /\\n}" | sort -n -t '-' -k 2
vas-1
vas-2
vas-3
..
vas-10
vas-11
이것은 구체적인 것 ${var// /\\n}
입니다 . bash
공백을 줄바꿈으로 바꾸므로 줄바꿈으로 구분된 출력을 인쇄합니다.
답변2
쉘 포함 zsh
:
# use an array instead of a scalar variable to store several values:
$ array=(vas-10 vas-2 vas-3 .... vas-1 vas-11)
$ print -rC1 -- ${(no)array}
....
vas-1
vas-2
vas-3
vas-10
vas-11
어디o
매개변수 확장 플래그 o
확장할 때 배열의 요소를 정렬하고 n
해당 순서를 n
숫자로 만듭니다(그리고 print -rC1
이를 olumn r
에 인쇄합니다).1
C
데이터가 처음에 스칼라 변수에 있어야 하고 공간적으로 분할하려는 경우 다음을 수행할 수 있습니다.
array=(${(s: :)var}) # split explicitly on SPC only
또는
array=($=var) # split on $IFS (SPC, TAB, NL, NUL by default)