2013-09-27 4 views
0

У меня есть tar-файл, в котором есть много файлов csv. Есть ли способ найти количество строк в каждом файле csv без извлечения его в Linux?Как найти количество строк файлов внутри файла tar без извлечения

Я попытался

for file in $(tar -tf "$tarfile") 
do 
    NL=`wc -l < "$file"` 
done 

Но это не дает ошибку: "Нет такого файла или каталога".

Может кто-нибудь помочь пожалуйста.

ответ

4

Попробуйте это:

for file in $(tar -tf "$tarfile") 
do 
    NL=$(tar Oxf "$tarfile" "$file" | wc -l) 
done 

Oxf извлекает указанный файл на стандартный вывод.

+1

Или, может быть, tar -tf tarfile "| при чтении файла; do tar -Oxf "$ tarfile" "$ file" | wc-1; done' – choroba

+0

Я заменил t.tar на $ tarfile и попытался. Но получил ошибку. Не найден в архиве tar: Выход из состояния отказа из-за предыдущих ошибок – user1407668

+0

@ user1407668 У вас есть GNU tar? Запустите «tar -version». – dogbane

Смежные вопросы