Ваша корневая оболочка идет от su
, верно? Переменная окружения $XDG_RUNTIME_DIR
наследуется от вашей пользовательской оболочки. Вы можете либо запустить экспорт XDG_RUNTIME_DIR=""
перед aplay
для очистки, либо использовать sudo -i
вместо su
, чтобы получить чистую окружающую среду.
Что касается первоначальной версии вопроса, я поставил "лайк" и -проголосовал за ответ Иниана и удалил этот, но теперь, когда вопрос изменился....
awk 'NR>1{if ($2~/^\*\*/) $2=foo;if ($3!~/^[[:digit:].]+$/) $3=foo; $1=$2=$3="";print}' file
Операторы if
должны помещать фиктивные значения во второй и третий столбцы, если второй равен **Never
или если третий не является IP-адресом, но приведет к ошибке ответа, если существуют другие необычные возможности.
Для удобства чтения давайте повторно -опубликуем один -вкладыш, так как он немного длинный...
awk 'NR > 1 {
if ( $2 ~ /^\*\*/ ) $2=foo
if ( $3 !~ /^[[:digit:].]+$/ ) $3=foo
$1=$2=$3=""
print }' file
Вы можете сделать это с помощью простой команды awk
для печати содержимого последнего столбца и использования нескольких пробелов в качестве разделителя полей. Поскольку разделителем по умолчанию в awk
является одиночное белое пространство -, его использование непосредственно в последнем столбце приведет к разделению содержимого последнего столбца. Условие NR>
обеспечивает пропуск первой строки при применении фактических действий, определенных для awk
.
awk -F '[[:space:]][[:space:]]+' 'NR>1{print $NF}' file
или также используя sed
, предполагая несколько пробелов между столбцами и слова, разделенные столбцами только в последнем столбце.
sed '1d;s/^.* //' file
ОП, по-видимому, повторно -сформулировал вопрос, чтобы сбросить вывод команды столбца last
, из которой они хотели получить последний вывод столбца.Поскольку сами промежуточные столбцы могут иметь пробелы, мы сопоставляем столбец, содержащий название дня, и печатаем оттуда до конца строки, т.е.
last | awk ' {
for( i=1;i<=NF;i++ ) {
if ( $i ~ /Mon|Tue|Wed|Thu|Fri|Sat|Sun/ ) {
j = 0
str = ""
for ( j=i; j<=NF;j++ ) {
str = ( str ? (str FS $j):$j )
}
print str
break
}
}
}'