Возможно, что-то вроде этого:
$ cat t.awk
NR==1 {
for (i=1; i<=NF; i++) {
ix[$i] = i
}
}
NR>1 {
print $ix[c1], $ix[c2]
}
$ awk -f t.awk c1=id c2=name input
1 ed
2 joe
$ awk -f t.awk c1=age c2=name input
50 ed
70 joe
Если Вы хотите указать столбцы для печати на командной строке, Вы могли бы сделать что-то вроде этого:
$ cat t.awk
BEGIN {
split(cols,out,",")
}
NR==1 {
for (i=1; i<=NF; i++)
ix[$i] = i
}
NR>1 {
for (i in out)
printf "%s%s", $ix[out[i]], OFS
print ""
}
$ awk -f t.awk -v cols=name,age,id,name,id input
ed 1 ed 50 1
joe 2 joe 70 2
(Отметьте -v
переключатель для определения переменной в BEGIN
блок.)
reset
команда, которая является частью ncurses и расположена в пакете ncurses-мусорного-ведра на Debian, будет абсолютно ясный консоль. Это то, что Вы хотите?
Краткий обзор reset
из страницы справочника:
приготовленные наборы сброса и режимы эха, выключают cbreak и режимы без предварительной обработки, включают перевод новой строки и сбрасывают любые специальные символы сброса к их значениям по умолчанию прежде, чем сделать терминальную инициализацию тот же путь как tset.
Как обсуждено в https://superuser.com/questions/122911/bash-reset-and-clear-commands, и, как указано Erik в очистке консоли Shell, clear
просто очистит экран, reset
будет (как bignose выразился), "сбросьте свой терминал, когда он испорчен управляющими последовательностями". Лично, я способен портить свой терминал, и когда я очищаю его, я не надеюсь получать что-либо назад, которое было там прежде, таким образом, я просто использую reset
. Но ymmv.
Я обычно просто использую:
clear
От clear
страница справочника:
clear clears your screen if this is possible. It looks in the environ-
ment for the terminal type and then in the terminfo database to figure
out how to clear the screen.
clear ignores any command-line parameters that may be present.
clear
или Ctrl+L
не работать.
– Mikel
01.04.2011, 04:58
Это не ответ на Ваш вопрос, но можно использовать меньше и поддержать цвет, см.: https://serverfault.com/questions/26509/colors-in-bash-after-piping-through-less
подсказка:
$ grep --color=always foo bar.txt | less -r
Ctrl+L
в целях этого вопроса? Пользователь не упоминал терминальное повреждение, и иначе это эквивалентно насколько я вижу. – Mikel 01.04.2011, 03:17Ctrl+L
но это не очистило терминал. – sawa 01.04.2011, 04:10