Как AWK несколько столбцов в bash - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть эта таблица, которая имеет несколько столбцов. Я хочу напечатать только первый и второй столбец

эта команда ниже создает следующую таблицу:

kubectl get ing -n my-namespace 


firstcolumn          secondcolumn        third columns
1                    test                value
3                    test2               value
2                    test3               value
5                    test4               value
6                    test                value

ожидаемый результат должен быть:

firstcolumn          secondcolumn        
1                    test                
3                    test2               
2                    test3               
5                    test4               
6                    test                

это только команда ниже awk первый столбец.

kubectl get ing -n my-namespace | awk '{ printf "%10s\n", $2 }'

как awk как первый, так и второй столбцы?

1 Ответ

2 голосов
/ 30 апреля 2020

Не могли бы вы попробовать следующее. Это напечатает те же пробелы, что и между вашим 1-м и 2-м полями.

awk '{match($0,/ +/);print $1,substr($0,RSTART,RLENGTH),$2}' Input_file

Объяснение: Добавление подробного объяснения для кода выше.

awk '                                        ##Starting awk program from here.
{
  match($0,/ +/)                             ##Usingawk match function which will match very first ALL spaces in current line.
  print $1,substr($0,RSTART,RLENGTH),$2      ##Now printing $1 then substring starting from RSTART to RLENGTH(which will have spaces in it) then 2nd field.
}
' Input_file                                 ##Mentioning Input_file name here.


ИЛИ, если вы НЕ беспокоитесь о расстоянии (что, я думаю, вы беспокоитесь о spacig), то вы можете просто сделать:

awk '{print $1,$2}'  Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...