Печать только одной строки за раз из текстового файла

папка «root» находится в / not /root/, которая является домашней папкой пользователя root или «суперпользователя», поэтому вам нужен root-доступ, чтобы открыть его

1
задан 21 March 2015 в 21:15

1 ответ

С помощью bash я бы сделал:

while IFS=$'\n' read -r line
do
    printf "%-${COLUMNS}s\r" "$line"
    sleep 1
done < file

Используя возврат каретки (\r) вместо строки (\n), вы можете перезаписать текущую строку. [[6]] выдает вывод с пробелами, чтобы предыдущие строки были полностью перезаписаны.

Для решения для каждого слова, я думаю, необходим двойной цикл:

while read -ra line
do 
    for word in "${line[@]}"
    do
        printf "%-${COLUMNS}s\r" "$word"
        sleep 1
    done
done < file
4
ответ дан 23 May 2018 в 22:11
  • 1
    Я думал, что входной файл OP содержит более одного слова в каждой строке: / – αғsнιη 21 March 2015 в 22:16
  • 2
    @KasiyA Хммм. Я предположил, что OP означает IFS, а не FS в первой строке, и в этом случае он идет по строкам. – muru 21 March 2015 в 22:23
  • 3
    Но ваш скрипт не удастся, если первое слово в первой строке было длинным, а второе слово в следующей строке было маленьким, чем предыдущая строка. запустите свой скрипт на этом вводе в качестве примера – αғsнιη 21 March 2015 в 22:27
  • 4
    @ KasiyA исправил это. – muru 21 March 2015 в 22:29

Другие вопросы по тегам:

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