когда я выполняю следующую строку, она печатает слова в новой строке. awk 'BEGIN {print "строка одна \nline two \nline three"}' как строка одна строка вторая строка три

Как я могу напечатать информацию в той же строке, чтобы очистить существующую строку. Например, во время выполнения цикла он должен напечатать «один», затем стереть строку и напечатать «два», затем стереть строку и вывести «три» и т.д. Не могли бы вы помочь мне?

2 ответа2

1

Использовать возврат каретки вместо новой строки

awk 'BEGIN { print "line one\rline two\rline three" }' 

Если последующая строка короче предыдущей, вы можете напечатать пробелы, чтобы стереть остаток:

awk 'BEGIN { print "this is a long line of text\rpad with spaces            " }' 

Если вы используете отдельные операторы, вы должны использовать printf вместо print .

0

Какую среду вы используете для просмотра вашей продукции? Шпатлевка? Возможно, вам придется перенастроить Putty для соблюдения \n "newLines". ИЛИ если вы действительно в режиме Windows/DOS, вам нужно

printf "line 1\r\nline 2\r\nline 3\r\n"

Надеюсь это поможет.

Поскольку вы новый пользователь, просто мягкое напоминание, чтобы принять ответ, который подходит вам, или, по крайней мере, добавьте голосование к ответам, которые помогут вам понять.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .