Я не думаю, что можно сделать это с join
один. Вы могли сделать:
join -t, -a1 -a2 -o0,1.2,1.3,1.4,1.5,2.2,2.3,2.4,2.5 -e MISSING 1.txt 2.txt |
perl -F, -lape '@F[1..2]=@F[5..6] if $F[1] eq "MISSING";
$_=join",",@F[0..4],@F[7..8]'
-p
: используйте линию за линией цикл чтения как в sed/awk-a
, -F,
: как awk, разделение строки в поля (в @F
массив).-l
: работы над содержанием строк (работает как awk
где вход разделяется на RS
($/
) (но RS
не включенный в $0
) и ORS
($\
) добавляется прежде, чем распечатать).-e ...
: жемчуг [e] xpression для оценки для каждой строки.На самом деле, при записи того же в awk
не более сложно:
awk -F, -vOFS=, '$2 == "MISSING"{$2=$6;$3=$7}
{print $1,$2,$3,$4,$5,$8,$9}'
Если вы хотите открыть новую вкладку в уже существующее окно гнома-терминала, попробуйте ctrl-shift-t
. Дословная копия единственного способа сделать это, который я когда-либо видел, используя xdotool
, xprop
, & wmctrl
.
#!/bin/sh
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
Это автоматически определит соответствующий терминал и откроет вкладку соответственно.