Как удалить первый столбец из всех файлов и заменить?

У меня есть несколько файлов с разделителями табуляции, например, файл выглядит так:

A213<TAB>foo bar<TAB>sentence
A123<TAB>bar foo<TAB>sentence
B84521<TAB>abc hello<TAB>world
C984<TAB>def word<TAB>hello

Мне нужно, чтобы удалить первый столбец и заменить вкладки с |||, вывод должен выглядеть так:

foo bar ||| sentence
bar foo ||| sentence
abc hello ||| world
def word ||| hello

Я попробовал следующее, но это не сработало:

$ cut -f2,3 file.txt | sed 's/<TAB>/\s|||\s/g'

1 ответ

Решение

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

$ awk 'BEGIN{FS="\t"; OFS=" ||| "} {print $2, $3}' file
foo bar ||| sentence
bar foo ||| sentence
abc hello ||| world
def word ||| hello

Это просто вопрос определения разделителей поля ввода и вывода соответственно. Затем выведите второе и третье поля.

С cut + sed Вы могли бы использовать:

$ cut -d$'\t' -f2- < file | sed 's/\t/|||/' 
foo bar|||sentence
bar foo|||sentence
abc hello|||world
def word|||hello

Во всех случаях обратите внимание, что вы должны указать, что такое разделитель полей.

Другие вопросы по тегам