Как распечатать выбранные столбцы, разделенные вкладками? - PullRequest
5 голосов
/ 15 апреля 2010

У меня есть текстовый файл со столбцами, разделенными вкладками, и на основе этого файла я хочу создать новый файл, который содержит информацию только из некоторых столбцов.

Вот что у меня сейчас:

awk '{ print $1, $5 }' filename > newfilename  

Это работает за исключением того, что когда в столбце 5 содержатся пробелы, например, 123 Street, отображается только 123, а улица считается другим столбцом.

Как мне добиться того, что я пытаюсь сделать?

Ответы [ 3 ]

4 голосов
/ 15 апреля 2010

Вы можете указать разделитель полей в качестве вкладки:

awk 'BEGIN { FS = "\t" } ; { print $1, $5 }' filename > newfilename 

или из командной строки , например:

awk -F"\t" '{ print $1, $5 }' filename > newfilename 
2 голосов
/ 23 января 2014

Как насчет простой cut команды оболочки?

очень просто, но делает работу

cut -d "\t" -f 1,5 filename > newfilename
0 голосов
/ 10 апреля 2016

Вы можете использовать синтаксис Bash следующим образом:

while IFS=$'\t' read -a cols; do
  printf "%s\t%s\n" "${cols[0]}" "${cols[4]}";
done < in.txt > newfile.txt

Это сохранит 1-й и 5-й столбцы, разделенные вкладками, в новый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...