2014-11-13 2 views
0

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

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

Я пробовал:

tab_seperated_string | awk -F"\t" '{ print $2"\t"$3"\t"$4"\t"$5} {print $1}' 

2,3,4,5 должны идти в один файл и один должен идти в другой файл.

+0

Думаю, я отредактировал это и сохранил ваши намерения и команду, но, пожалуйста, проверьте и исправьте, если я этого не сделал. –

ответ

0

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

tab_seperated_string | awk -F"\t" '{print $2,$3,$4,$5 > "file2"; print $1 > "file1"}' OFS="\t" 

Он будет сохранять данные в двух разных файлах.

Установив OFS на номер \t, вам не нужно все \t в заявлении на печать.


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

awk -F"\t" '{print $1 > "file1"; sub(/[^\t]+\t/,""); print $0 > "file2"}' OFS="\t" 

sub(/[^\t]+\t/,"") удаляет первое поле и первой вкладке.