파이프에서 문자열의 처음 [x] 문자를 가져옵니다.

파이프에서 문자열의 처음 [x] 문자를 가져옵니다.

명령 출력이 매우 길지만(한 줄) 출력의 첫 번째 [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

가변 길이 문자열을 구성하는 것은 다음과 같습니다.이것은 그 자체의 문제가 있습니다.

관련 정보