Я плохо знаком с Linux, делая некоторый материал opencv.
У меня есть файл, positives.txt
с названиями изображений 1400 года и координатами как это:
./positives/1.jpg 1 9 25 70 21
./positives/2.jpg 1 13 5 45 38
./positives/3.jpg 1 8 20 63 14
./positives/4.jpg 2 4 25 76 23 11 17 67 21
... и т.д.
и другой файл samples.txt
как это:
./positives/800.jpg
./positives/801.jpg
./positives/802.jpg
./positives/803.jpg
... и т.д.
Я хочу сделать сценарий удара, который скопирует все числа из файла positives.txt
в файл samples.txt
. Таким образом, вывод будет похож на это
./positives/800.jpg 1 9 25 70 21
./positives/801.jpg 1 13 5 45 38
./positives/802.jpg 1 8 20 63 14
./positives/803.jpg 2 4 25 76 23 11 17 67 21
... и т.д.
Как я могу сделать это?
В вашем примере
$ cut -d ' ' -f2- positives.txt | paste -d '' samples.txt -
./positives/800.jpg 1 9 25 70 21
./positives/801.jpg 1 13 5 45 38
./positives/802.jpg 1 8 20 63 14
./positives/803.jpg 2 4 25 76 23 11 17 67 21
Предполагается, что файлы уже отсортированы и в первой строке positives
есть номера, которые вы хотите добавить в первую строку samples
cut -d ' ' -f2-
вырезают из positives
все поля, начиная со второго поля, предполагая, что он разделен пробелом |
и пропускают cut
вывести как stdin в paste
paste -d '' samples.txt -
и вставить строки из stdin в строки из samples
без добавления символов-разделителей (файл, введенный здесь, имеет пробел в конце каждой строки. Если это не реальность, используйте paste -d ' '
, чтобы получить пробел)