명령 출력이 매우 길지만(한 줄) 출력의 첫 번째 [x](예: 8) 문자만 원하는 경우 가장 쉬운 방법은 무엇입니까? 구분 기호 없이.
답변1
한 가지 방법은 다음을 사용하는 것입니다 cut
.
command | cut -c1-8
그러면 각 출력 줄의 처음 8자가 제공됩니다. POSIX의 일부 이므로 cut
대부분의 Unices에 존재할 가능성이 높습니다.
답변2
처음 8자만 가져오는 다른 방법도 있습니다.
command | head -c8
command | awk '{print substr($0,1,8);exit}'
command | sed 's/^\(........\).*/\1/;q'
배쉬가 있다면
var=$(command)
echo ${var:0:8}
답변3
또 다른 라이닝 솔루션은쉘 매개변수 확장
echo ${word:0:x}
EG: word="Hello world"
echo ${word:0:3} or echo ${word::3}
o/p: Hel
EG.2: word="Hello world"
echo ${word:1:3}
o/p: ell
답변4
이것은 이식 가능합니다.
a="$(command)" # Get the output of the command.
b="????" # as many ? as characters are needed.
echo ${a%"${a#${b}}"} # select that many chars from $a
가변 길이 문자열을 구성하는 것은 다음과 같습니다.이것은 그 자체의 문제가 있습니다.