如果我的命令输出很长(单行),但我知道我只想要输出的前 [x] (假设 8)个字符,那么最简单的方法是什么?没有任何分隔符。
答案1
一种方法是使用cut
:
command | cut -c1-8
这将为您提供每行输出的前 8 个字符。由于cut
它是 POSIX 的一部分,因此它很可能出现在大多数 Unices 上。
答案2
这些是仅获取前 8 个字符的其他一些方法。
command | head -c8
command | awk '{print substr($0,1,8);exit}'
command | sed 's/^\(........\).*/\1/;q'
如果你有 bash
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
构建一个可变长度字符的字符串有这里有它自己的问题。