Как напечатать разделитель для всех полей в утилите соединения?
330
Xiè Jìléi
Например:
подать:
Tom:black Lily:pink
файл б:
Tom:big Kate:small
И, результат:
join -t: a1 a b
Получил:
Tom:black:big Lily:pink
Но то, что я хочу, это:
Tom:black:big Lily::pink
т.е. двоеточие в последней строке отсутствует, есть идеи?
2 ответа на вопрос
1
icyrock.com
Такое поведение ожидается в man join:
-a FILENUM print unpairable lines coming from file FILENUM, where FILENUM is 1 or 2, corresponding to FILE1 or FILE2
Вы можете сделать это в два прохода, как это:
join -t: a b && join -t: -v1 a b|sed 's/:/::/'
Или что-то вдоль этих линий.
1
Dennis Williamson
Я думаю, вы бы хотели, чтобы поля находились в согласованном положении. Если это так, то один из них будет работать, используя только один вызов joinи нет sed:
$ join -t: -a1 -o 1.1,1.2,2.2 a b Tom:black:big Lily:pink: $ join -t: -a1 -o 1.1,2.2,1.2 a b Tom:big:black Lily::pink