Иногда есть необходимость перевернуть текстовый файл, то есть, сделать так что бы, первая строка стала последней, а последняя стала первой, вторая стала предпоследней, а предпоследняя второй ну и так далее, для этого можно использовать вот такой скрипт:
#!/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 <имя обрабатываемого файла>
a says:
Блин, зачем такие сложности. Всё проще гораздо: tac file.txt > file.new.txt
admin says:
Не расстраивайтесь. tac — замечательная команда, которая чудесно делает свое дело, данный скрипт делает то же самое, но используя исключительно конструкции языка, вот и все.