パイプから文字列の最初の[x]文字を取得します。

パイプから文字列の最初の[x]文字を取得します。

コマンド出力が非常に長いですが(1行)、出力の最初の[x](たとえば8)文字だけが必要な場合は、最も簡単な方法は何ですか?区切りなし。

答え1

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

可変長文字列の構成は次のとおりです。これにはそれ自体の問題があります

関連情報