В этой заметке рассмотрим, как вывести с определённого столбца до последнего. Например:
- как вывести со второго столбца до последнего
- как вывести с третьего столбца до последнего
- как вывести с четвёртого столбца до последнего
- как вывести с n-го столбца до последнего
- как вывести последний столбец
Чтобы вывести с определённой колонки до самой последней наиболее удобна команда cut. Если по каким-либо причинами вы предпочитаете команду awk, то здесь будут показаны примера вывода с определённого столбца до последнего с помощью команды awk.
cut
Как вывести с n-го столбца до последнего:
Используйте следующую команду, в которой «N» замените на номер колонки, с которой необходимо начать вывод:
cut -fN- -d' '
Как вывести со второго столбца до последнего:
cut -f2- -d' '
Пример:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | cut -f2- -d' '
Как вывести с третьего столбца до последнего:
cut -f3- -d' '
Пример:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | cut -f3- -d' '
Как вывести с четвёртого столбца до последнего:
cut -f4- -d' '
Пример:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | cut -f4- -d' '
awk
Как вывести с n-го столбца до последнего:
В awk вы можете использовать конструкцию вида:
awk '{$1=$2=$3="";print $0}'
Этот пример очистит содержимое первых трёх столбцов и покажет все колонки, начиная с четвёртого столбца.
Но при этом пробелы, который находятся между первым и вторым столбцом, вторым и третьим столбцом, а также третьим и четвёртым столбцом удалены не будут и будут показаны. Чтобы их удалить используйте дополнительно команду sed:
awk '{$1=$2=$3="";print $0}' | sed -r "s/^\s+//g"
Либо вы можете использовать следующую команду awk которая очищает пробелы между удалёнными стобцами:
awk '{$1=$2=$3=""; $0=$0; $1=$1; print}'
Смотрите также: Уроки по Awk
Как вывести со второго столбца до последнего:
awk '{$1="";print $0}' | sed -r "s/^\s+//g" awk '{$1=""; $0=$0; $1=$1; print}'
Примеры:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1="";print $0}' | sed -r "s/^\s+//g" echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1=""; $0=$0; $1=$1; print}'
Как вывести с третьего столбца до последнего:
awk '{$1=$2="";print $0}' | sed -r "s/^\s+//g" awk '{$1=$2=""; $0=$0; $1=$1; print}'
Примеры:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1=$2="";print $0}' | sed -r "s/^\s+//g" echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1=$2=""; $0=$0; $1=$1; print}'
Как вывести с четвёртого столбца до последнего:
awk '{$1=$2=$3="";print $0}' | sed -r "s/^\s+//g" awk '{$1=$2=$3=""; $0=$0; $1=$1; print}'
Примеры:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1=$2=$3="";print $0}' | sed -r "s/^\s+//g" echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{$1=$2=$3=""; $0=$0; $1=$1; print}'
Как вывести последний столбец
Для вывода последнего столбца с помощью awk используйте команду:
awk '{print $NF}'
Например:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | awk '{print $NF}'
Смотрите также: Уроки по Awk
Если вы хотите обойтись без awk, то используйте следующий набор команд:
rev | cut -d' ' -f1 | rev
Например:
echo 'vddp vddpi vss cb0 cb1 cb2 cb3 ct0 ct1 ct2 ct3' | rev | cut -d' ' -f1 | rev
Связанные статьи:
- Как удалить newline (символ новой строки) из вывода команд и файлов в командной строке Linux (78%)
- awk и табуляция во вводимых и выводимых данных (69.8%)
- Как отфильтровать текст, находящийся между двумя определёнными строками (64.9%)
- Как добавить строку в начало или в конец каждой строчки (64.9%)
- Как сделать замену от совпадения до конца строки (64.9%)
- Как вывести список только директорий используя ls в Bash (RANDOM - 22%)