Добавление частей одного файла в другой файл

Я плохо знаком с 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

... и т.д.

Как я могу сделать это?

1
задан 30 April 2017 в 07:52

1 ответ

В вашем примере

$ 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 ' ', чтобы получить пробел)
1
ответ дан 7 December 2019 в 15:36

Другие вопросы по тегам:

Похожие вопросы: