indicator-network работает с ConnMan вместо NetworkManager, и, судя по их сайту, ConnMan не поддерживает PPP в настоящее время (его можно добавить с помощью плагина, если таковой существует). (Также этот индикатор будет использоваться только для Netbook Edition, а не для Desktop Edition.)
join -t, <(csvcut -c 1,3,4 file1.csv) <(csvcut -c 1,2 file2.csv)
Шаг 1. Установите csvkit:
sudo pip install csvkit
sudo apt-get install python-dev python-pip python-setuptools build-essential
Шаг 2. Используйте команду соединения с запятой как разделитель
join -t,
Шаг 3. Загрузите фактические столбцы, которые вы хотите. Обратите внимание на то, как вы кормите его первым столбцом дважды, потому что это то, на котором фактически выполняется соединение (поведение по умолчанию join).
join -t, <(csvcut --columns 1,3,4 file1.csv) <(csvcut --columns 1,2 file2.csv)
или в сокращении:
join -t, <(csvcut -c 1,3,4 file1.csv) <(csvcut -c 1,2 file2.csv)
При желании вы можете перенаправить этот стандартный вывод в файл (желаемый результат).
Этот метод имеет несколько преимуществ по сравнению с другими предложенными.
Прежде всего, он выполняет реальное соединение. Это означает, что его можно использовать и для более сложных данных. Например, очень просто сделать соединение в другом поле. Он не просто смотрит на положение поля, но он действительно учитывает колонку. Он действительно работает с форматом данных (csv) и не воспринимает его как текст.
Во-вторых, он использует очень мощный инструментарий csv, который также позволяет вам: a) отображать статистику с помощью одной команды ([ f7], b) проверить, чист ли данные (csvclean), но также преобразовать его в json, в sql или даже загрузить в python! Этот инструментарий широко используется в науке о данных для подготовки данных.
Вот еще одна красивая. Я думаю, что это самый простой из всех предложений.
csvtool pastecol 2 2 file1.csv file2.csv
Если вы еще не установили csvtool в прошлом, вы должны sudo apt-get install csvtool.
Из документов:
pastecol <column-spec1> <column-spec2> input.csv update.csv
Замените содержимое столбцов, на которые ссылается в файле input.csv, на соответствующий столбец, указанный в файле update.csv. Пример: csvtool pastecol 2-3 1- input.csv update.csv.csv > output.csv
Обратите внимание, как в нашем случае мы заменяем второй столбец файлов.
file1.csv
[ f4]file2.csv
A,B
A,B
A,B
A,B
Объединение двух файлов:
csvtool pastecol 2 2 file1.csv file2.csv
A,B,C,D
A,B,C,D
A,B,C,D
A,B,C,D
Что вы в основном делаете, вставьте столбец два из file2.csv в качестве столбца 2 в file1.csv.
Обратите внимание, что это также работает в том же документе. Если вы хотите поменять два столбца, вы можете сделать это, используя тот же файл, что и input.csv и update.vsc.
csvtool pastecol 2 1 file2.csv file2.csv
A,A
A,A
A,A
A,A
Чтобы переместить выбранное количество столбцов из одного файла в другой:
#!/usr/bin/env python3
cols = 1; file_1 = "/path/to/file_1"; file_2 = "/path/to/file_2"
def readfile(file):
with open(file) as src:
return [item.strip().split(",") for item in src.readlines()]
file_1 = readfile(file_1); file_2 = readfile(file_2)
for i in range(len(file_1)):
print((",").join(file_1[i]+file_2[i][-cols:]))
из двух файлов:
file_1
A,B
A,B
A,B
A,B
file_2 [ ! d3]
K,L,M
K,L,M
K,L,M
K,L,M
Когда вы устанавливаете cols = 1:
A,B,M
A,B,M
A,B,M
A,B,M
Но когда вы установите cols = 2:
A,B,L,M
A,B,L,M
A,B,L,M
A,B,L,M
cols = 3:
A,B,K,L,M
A,B,K,L,M
A,B,K,L,M
A,B,K,L,M
Скопируйте его в пустой файл, установите путь к file1, file2 и количество столбцов для перемещения, сохраните его как move.py и запустите его:
python3 /path/to/move.py
Также можно добавить один или несколько столбцов из середины колонок исходного файла.
Другой метод в python через модуль csv.
script.py
#!/usr/bin/python3
import csv
import sys
file1 = sys.argv[1]
file2 = sys.argv[2]
with open(file2, 'r') as r:
with open(file1, 'r') as f:
csv_f = csv.reader(f)
csv_r = csv.reader(r)
bar = [linex for linex in csv_r]
foo = [liney[2:] for liney in csv_f]
zipped = zip(bar,foo)
result = [x+y for (x,y) in list(zipped)]
for i in result:
print(','.join(i))
Чтобы запустить указанный скрипт,
python3 script.py file1 file2
Выход: [ ! d3]
A,B,C,D
A,B,C,D
A,B,C,D
A,B,C,D