Intereting Posts
Проблемы с Vim при использовании ZSH Какую команду iptables нужно разрешить трафик веб-сервера? Как печатать ряд IP-адресов с помощью команды seq Linux Форматирование строк в файлах .desktop Обновление CentOS командой YUM без удаления предыдущей версии Как изменить требования к экранам программ bash? Обновление единого пакета от Ubuntu Utopic Unicorn при запуске Trusty Tahr Приложение не может получать многоадресные пакеты на CentOS 7 Как понимать поле «Заменяет» в выводе «apt-cache зависит»? Как запустить несколько команд sed в списке файлов, используя вывод команды find, переданный через xargs Binvox не работает на безголовом сервере Linux В чем разница между запуском команды напрямую и с помощью `bash -c`? Обработка сообщения whois отказалось от сообщения в сценарии оболочки Объем слишком тихий при максимальном Использование Btrfs для устранения поврежденных архивов

Как определить разделитель «tab» с «cut» в BASH?

Ниже приведен пример использования cut to break input в поля с использованием разделителя пробелов и получения второго поля:

cut -f2 -d' '

Как разделитель можно определить как вкладку, а не пробел?

Два пути:

Нажмите Ctrl-v + Tab

 cut -f2 -d' ' infile 

или напишите так:

 cut -f2 -d$'\t' infile 

По умолчанию используется вкладка.

См. Страницу разрезания .

 -d delim Use delim as the field delimiter character instead of the tab character. 

Поэтому вы должны просто написать

 cut -f 2 

В более общем плане, не требуя каких-либо невидимых символов: Используйте tr для преобразования разделителей в формат, который можно более легко определить.

 $ echo -e "a\tb\tc" |tr '\t' ' ' |cut -d' ' -f2 b 

tr – простой, но мощный инструмент для сопоставления и замены символов.

awk '{ print $2; }' inputfile

Ответ не мог упростить это:

cut имеет в качестве разделителя по умолчанию разделитель, поэтому нет смысла использовать ключ -d

cat testfile1 a bc

cut testfile1 -f 1 тестовый файл cut -f 2 b cut testfile -f 3 c

вырезать тестовый файл -f 1,2,3 abc