コマンド出力が非常に長いですが(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
可変長文字列の構成は次のとおりです。これにはそれ自体の問題があります。