Я выяснил простой способ сделать то, что я хотел, таким образом, я отправлю его здесь как ссылку на других, которым, возможно, понадобилось бы что-то подобное.
Как многие люди отметили, если у Вас есть корневой доступ, очень трудно ограничить что-либо. Таким образом, идея состоит в том, чтобы ограничить корневой доступ. Мы можем использовать pam_usb модуль, чтобы сделать это. Мы можем настроить компьютер таким способом, которым карта с интерфейсом USB требуется, чтобы входить в систему как корень. См. учебное руководство на http://linuxconfig.org/linux-authentication-login-with-usb-device, который объясняет как.
Когда у нас больше нет неограниченного корневого доступа, мы можем ограничить или отключить Интернет/сети различными способами.
с вставка
под ударом можно сделать:
paste <(cut -f 4 1.txt) <(cut -f 4 2.txt) .... <(cut -f 4 20.txt)
Со сценарием Python и любым количеством файлов ( python scriptname.py column_nr file1 file2... filen
):
#! /usr/bin/env python
# invoke with column nr to extract as first parameter followed by
# filenames. The files should all have the same number of rows
import sys
col = int(sys.argv[1])
res = {}
for file_name in sys.argv[2:]:
for line_nr, line in enumerate(open(file_name)):
res.setdefault(line_nr, []).append(line.strip().split('\t')[col-1])
for line_nr in sorted(res):
print '\t'.join(res[line_nr])
Следующий скрипт делает это с помощью awk. Я добавил для удобства Rownumber, который указывает количество строк в ваших файлах (R). Количество столбцов, которые вы хотели бы вставить, указан C.
directory=/your-directory/
r=4
c=20
for n in $(seq 1 $r); do
echo "$n" >> rownumber.txt
done
for n in $(seq 1 $c); do
awk '{ print $4}' /$directory/file-$n.txt > /$directory/output-$n.txt
done
paste /$directory/rownumber.txt /$directory/output-[1-$c]*.txt > /$directory/newfile.txt