Bash Построчный реверс текстовго файла

Иногда есть необходимость перевернуть текстовый файл, то есть, сделать так что бы, первая строка стала последней, а последняя стала первой, вторая стала предпоследней, а предпоследняя второй ну и так далее, для этого можно использовать вот такой скрипт:

#!/bin/bash
#
#Script to reverse text file v0.11
file="$1"
if [ $# -eq 0 ]; then
echo "$(basename $0) - file-name"
exit 1
fi  textArray[0]="" # hold text
c=0 # counter
# read whole file in loop
while read line
do
textArray[$c]=$line # store line
c=$(expr $c + 1) # increase counter by 1
done < $file
# get length of array
len=$(expr $c - 1 ) # use for loop to reverse the array
for (( i=$len; i>=0; i-- ));
do
echo ${textArray[$i]} >> $file".new"
done

Если сохранить данный скрипт в файле script, то запускаем мы его:

./script <имя обрабатываемого файла>

0 thoughts on “Bash Построчный реверс текстовго файла

    • Не расстраивайтесь. tac — замечательная команда, которая чудесно делает свое дело, данный скрипт делает то же самое, но используя исключительно конструкции языка, вот и все.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>