Как использовать разрез с несколькими разделителями символов? Юникс

Мой файл выглядит следующим образом

abc ||| xyz ||| foo bar
hello world ||| spam ham jam ||| blah blah

Я хочу извлечь конкретный столбец, например. Я мог бы сделать:

sed 's/\s|||\s/\\t/g' file | cut -f1

Но есть ли другой способ сделать это?

Ответ 1

Вы можете сделать это:

awk -F' \\|\\|\\| ' '{$0=$1}1' file

Ответ 2

Вы можете использовать awk для этого -

$ awk 'BEGIN {FS=" \|\|\| ";}{print $1}' file

Замените $1 на $2, $3 и т.д.