Вот ваш пример-Notepadqq-установлен в Debian 10.0.0 Buster .
Хотя Ubuntu -ориентирован, на самом деле официальный notepadqq PPA-репозиторий действительно содержит файлы.deb!
(Я выбрал Ubuntu 18.04 Bionic из технических деталей .)
Загрузите оба следующих файла.deb:
http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu/pool/main/n/notepadqq/notepadqq-common_1.4.4-1~bionic1_all.deb
http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu/pool/main/n/notepadqq/notepadqq_1.4.4-1~bionic1_amd64.deb
Установите через клемму следующим образом:
sudo dpkg -i./notepadqq-common_1.4.4-1~bionic1_all.deb
sudo apt-get install -f
sudo dpkg -i./notepadqq_1.4.4-1~bionic1_amd64.deb
sudo apt-get install -f
Успех! (См. :/usr/share/applications/notepadqq.desktop)
Настоящей проблемой является разделитель полей из 2 -символов. Такие инструменты, как объединение и сортировка, предполагают, что разделитель будет состоять только из одного символа :
.join -t, -13 -21 -o 1.1,1.2,1.3,2.2,2.3 \
<(sed -E 's/, +/,/g' file1.txt | sort -t, -k3,3) \
<(sed -E 's/, +/,/g' file2.txt | sort -t, -k1,1)
выходы
Doe,John,phone123,longdistance,10mins
Dane,Jane,phone124,local,5mins
Dane,Jane,phone124,longdistance,6mins
И вы можете передать это в | sed 's/,/, /g'
, чтобы восстановить разделители "запятая".
Альтернативно, awk
awk '
BEGIN {FS = ", *"; OFS = ", "}
NR == FNR {name[$3] = $1 OFS $2; next}
$1 in name {print name[$1], $0}
' file1.txt file2.txt