Как использовать команду вставки для многих файлов, имена которых не являются числами? (вставьте столбцы от каждого файла до одного файла),

Коротко говоря: инструмент GNU tar не пропускает через zip/unzip, так как всем наплевать.

Коротко говоря, исходный размер:

tar изначально предназначался не для распаковки и сжатия файлов, а для архивирования нескольких файлов в одном большом файле. Так как люди хотели не только архивировать свои файлы, но и сжимать их, то они просто пропускали вывод tar через любой компрессор, который принимает входной поток данных и сбрасывает результаты в файл. Прибыль!

Теперь, чтобы сделать эту задачу как можно более безболезненной, tar решили передать внутренне генерируемые файлы инструментам сжатия, таким как gzip, lzma и т.д., которые при запуске tar активировались специальными флагами для каждого формата. Поэтому, когда вы пытаетесь извлечь повреждённый файл через tar, вам показывается базовая ошибка инструмента, а не tar:

$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file

Так что, дело не в том, что tar не распаковывает zip-файлы, а в том, что tar не имеет возможности пропустить его через правильный инструмент, так как никто на самом деле не удосужился его реализовать, и zip уже выполнил функцию архивации файлов формата tar.

Теперь есть утилиты "все-в-одном", которые сжимают/разжимают все, что вы бросаете в них, опять же, вам нужны правильные утилиты, чтобы на самом деле это поддерживать. Если у вас их нет, инструмент не справится.

1
20.03.2017, 20:39
2 ответа
[

]С помощью []bash[] 4[

] [
mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t
] [

]для версии вопроса []вставьте {list}/PQR/A/sum[][

] [
mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t    
]
2
27.01.2020, 23:38
[

]Если все ваши файлы находятся в одной директории, просто используйте:[

] [
paste * | column -s $'\t' -t
] [

]Если у вас есть список файлов, содержащий все файлы, и имя каждого файла в одной строке, не имеет специальных символов, как пробел, вы можете попробовать:[

] [
paste $(printf "%s " $(cat list)) | column -s $'\t' -t
] [

][]Updated[][

] [

]С вашей обновленной информацией, вы можете попробовать:[

] [
paste */PQR/A/sum | column -s $'\t' -t
] [

]Если ваша родительская директория содержит много файлов и директорий, которые вам не нужны, вы должны явно перечислить всю вашу директорию: [

] [
paste {1MUI,2QHK,2RKF,...}/PQR/A/sum | column -s $'\t' -t
]
0
27.01.2020, 23:38

Теги

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