UbuntuOne для мобильных устройств поддерживает синхронизацию контактов. Также есть возможность синхронизировать контакты с Thunderbird. Надеюсь, это поможет.
Исходя из комментариев, проблема заключается в том, что ваш файл имеет конец строки CRLF в стиле DOS, а вторая группа захвата захватывает CR и перемещает его в середину выходного шаблона, как вы можете видеть, используя cat -et для сделать вывод строки явным:
$ sed 's/\(.*13...|[^|]*\)\(.*\)$/\2\1/' tel2.txt | cat -et
|926/448/829^MHernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava$
|926.443.602^MGomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava$
Возможным решением было бы исключить CR из второй группы:
$ sed 's/\(.*13...|[^|]*\)\(.*\)\r$/\2\1\r/' tel2.txt | cat -et
|926/448/829Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
|926.443.602Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
(если вы не хотите DOS-стиля
Я подозреваю, что вы действительно не хотите, чтобы разделитель спереди - более простое выражение, которое обрабатывает разделители более разумно было бы
sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/'
например:
$ sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/' tel2.txt | cat -et
926/448/829|Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
926.443.602|Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
Исходя из комментариев, проблема заключается в том, что ваш файл имеет конец строки CRLF в стиле DOS, а вторая группа захвата захватывает CR и перемещает его в середину выходного шаблона, как вы можете видеть, используя cat -et для сделать вывод строки явным:
$ sed 's/\(.*13...|[^|]*\)\(.*\)$/\2\1/' tel2.txt | cat -et
|926/448/829^MHernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava$
|926.443.602^MGomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava$
Возможным решением было бы исключить CR из второй группы:
$ sed 's/\(.*13...|[^|]*\)\(.*\)\r$/\2\1\r/' tel2.txt | cat -et
|926/448/829Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
|926.443.602Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
(если вы не хотите DOS-стиля [d6]
Я подозреваю, что вы действительно не хотите, чтобы разделитель спереди - более простое выражение, которое обрабатывает разделители более разумно было бы
sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/'
например:
$ sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/' tel2.txt | cat -et
926/448/829|Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
926.443.602|Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
Исходя из комментариев, проблема заключается в том, что ваш файл имеет конец строки CRLF в стиле DOS, а вторая группа захвата захватывает CR и перемещает его в середину выходного шаблона, как вы можете видеть, используя cat -et для сделать вывод строки явным:
$ sed 's/\(.*13...|[^|]*\)\(.*\)$/\2\1/' tel2.txt | cat -et
|926/448/829^MHernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava$
|926.443.602^MGomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava$
Возможным решением было бы исключить CR из второй группы:
$ sed 's/\(.*13...|[^|]*\)\(.*\)\r$/\2\1\r/' tel2.txt | cat -et
|926/448/829Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
|926.443.602Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$
(если вы не хотите DOS-стиля [d6]
Я подозреваю, что вы действительно не хотите, чтобы разделитель спереди - более простое выражение, которое обрабатывает разделители более разумно было бы
sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/'
например:
$ sed 's/\(.*\)|\([^|]*\)\r/\2|\1\r/' tel2.txt | cat -et
926/448/829|Hernandez Darin, Alberto|plaza mayor|13190|Corral de Calatrava^M$
926.443.602|Gomez Badenas, Josefina|calle Sagasta|13190|Corral de Calatrava^M$