Ограничение на количество символов в Bash - PullRequest
4 голосов
/ 30 марта 2011

Как можно ограничить количество стандартных выходных символов, перенаправляемых в файл?

Ответы [ 3 ]

5 голосов
/ 30 марта 2011

Другие способы (внешние)

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 голос
/ 30 марта 2011

Вы можете использовать Подстановка команд , чтобы обернуть предварительное перенаправление вывода, затем использовать смещение Расширение параметра , чтобы ограничить количество символов следующим образом:

#!/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
0 голосов
/ 30 марта 2011

Вы не можете сделать это напрямую в файл, но вы можете передать через sed или head и т. Д., Чтобы передать только часть вывода.Или, как говорит @SiegeX, перехватите вывод в оболочке (но я бы с осторожностью отнесся к этому, если выходной сигнал, вероятно, будет большим).

...