У меня есть файл A с 400 000 строк. У меня есть другой файл B, в котором есть ряд строк.извлечь несколько строк файла unix
File B:
-------
98
101
25012
10098
23489
Я должен извлечь эти номера строки, указанные в файле B из файла А. То есть я хочу, чтобы извлечь строки 98,101,25012,10098,23489 из файла А. Как извлечь эти строки в следующих случаях.
- Файл B - это явный файл.
- Файл B поступает из трубы. Например, grep -n pattern somefile.txt дает мне файл B.
Я хотел использовать see -n 'x'p fileA. Однако я не знаю, как передать «x» из файла. Кроме того, я не могу передать значение «x» из команды.
Вы имели в виду 's/$/p; /' right? также будет ли это работать, если в файлеB есть 30k строк? – Kent
Когда я выполняю только этот $ (sed -e 's/$/p; /' B), он отображает каждое линейное число; в новой строке. Это 98; \ n101; \ n. Следовательно, когда я запускаю команду в целом, sed -e $ (sed -e 's/$ /; /' B) A, я получаю сообщение об ошибке «sed: 31494p ;: Нет такого файла или каталога». Я думаю, что первое sed с файлом B также должно удалить новую строку. –
Извините, я не тестировал последнее утверждение. Исправленный. – l0b0