Добавьте вывод в файл и перенаправьте stderr к пустому указателю

#!/bin/sh

while getopts "f:t:" option; do
  case "$option" in 
    f) from=$OPTARG ;;
    t) to=$OPTARG ;;
  esac
done
if [ -z "$from" ] || [ -z "$to" ]; then
  echo "must give both -f and -t" >&2
  exit 1
fi

awk -v "from=$from" -v "to=$to" 'from <= NR && NR <= to' filename

# or:
sed -n "$from,$to p; $to q" filename

# or:    
i=0
while read line; do
  i=$(( i + 1 ))
  if [ $i -ge $from ] && [ $i -le $to ]; then
    printf "%s\n" "$line"
  fi
  [ $i -eq $to ] && break
done < filename
16
14.08.2012, 22:17
1 ответ

Можно использовать >> для добавления и 2> /dev/null для перенаправления stderr:

mycommand >> outputfile 2> /dev/null

Хотя я подозреваю, что что-то очень похожее уже спросили...

17
27.01.2020, 19:48
  • 1
    , который я знал, как сделать каждого индивидуально, но не обоих вместе. Я не мог найти другой вопрос, который попросил обоих. –  Benjamin 14.08.2012, 22:47

Теги

Похожие вопросы