Bash stdout字符限制

时间:2011-03-29 21:58:53

标签: bash file limit stdout

如何限制重定向到文件的标准输出字符的数量?

3 个答案:

答案 0 :(得分:5)

其他方式(外部)

echo $out| head -c 20
echo $out | awk '{print substr($0,1,20) }'
echo $out | ruby -e 'print $_[0,19]'
echo $out | sed -r 's/(^.{20})(.*)/\1/'

答案 1 :(得分:1)

您可以使用命令替换来包装输出预重定向,然后使用偏移参数扩展来限制字符数,如下所示:

#!/bin/bash

limit=20

out=$(echo "this line has more than twenty characters in it")
echo ${out::limit} > /path/to/file

概念证明

$ limit=20
$ out=$(echo "this line has more than twenty characters in it").
$ echo ${out::limit}
this line has more t

答案 2 :(得分:0)

您不能直接进入文件,但您可以通过sedhead等管道传递仅部分输出。或者正如@SiegeX所说,捕获shell中的输出(但如果输出错误可能很大,我会警惕)。