LINUX.ORG.RU

склеить файлы cat`ом?


0

0

Имееться 50 файлов d3roe.001 ... d3roe.050. Как их склеить в один (d3roe.rar) cat'ом не перечесляя все 50 файлов в коммандной строке(cat d3roe.001 d3roe.002...d3roe.050 > d3roe.rar). В регулярных выражениях не силён.Подскажите плз.

anonymous

for ((i=1; $i < 51; i++)); do if test $i -lt 10; then g=0$i; else g=$i; fi; cat d3roe.0$g >> d3roe.rar; done


не смотри удаленные - там я ошибся =)

wieker ★★
()
Ответ на: комментарий от UVV

for i in `ls d3roe.*`; do cat $i >> d3roe.rar; done;

в этом случае и

cat d3roe.* > d3roe.rar;

работает

wieker ★★
()
Ответ на: комментарий от wieker

> не смотри удаленные - там я ошибся =)
Ты и здесь ошибся! Форматирование неправильное! ;-))

UVV ★★★★★
()
Ответ на: комментарий от UVV

если у него в каталоге не только эти файлы но и какой нибудь d3roe.067 он в твоем скрипте тоже склеится. в ТЗ же написано только 50 файлов с 001 до 050. так что бажный твой скрипт.

wieker ★★
()

Разархивировать и запаковать по новой в один файл? :)

Binky
()

cat d3roe.0[0-4][0-9] d3roe.050 > d3roe.rar

или

rm -f d3roe.rar
ls -1 d3roe.0[0-4][0-9] d3roe.050 | grep -v d3roe.000 | sort -n -t'.' -k2 | xargs cat >>  d3roe.rar

sdio ★★★★★
()
Ответ на: комментарий от sdio

>cat d3roe.0[0-4][0-9] d3roe.050 > d3roe.rar


censored:/ssa/ifs # echo d3roe.0[0-4][0-9] d3roe.050
d3roe.0[0-4][0-9] d3roe.050
censored:/ssa/ifs # echo d3roe.0{0..4}{0..9} d3roe.050
d3roe.000 d3roe.001 d3roe.002 d3roe.003 d3roe.004 d3roe.005 d3roe.006 d3roe.007 d3roe.008 d3roe.009 d3roe.010 d3roe.011 d3roe.012 d3roe.013 d3roe.014 d3roe.015 d3roe.016 d3roe.017 d3roe.018 d3roe.019 d3roe.020 d3roe.021 d3roe.022 d3roe.023 d3roe.024 d3roe.025 d3roe.026 d3roe.027 d3roe.028 d3roe.029 d3roe.030 d3roe.031 d3roe.032 d3roe.033 d3roe.034 d3roe.035 d3roe.036 d3roe.037 d3roe.038 d3roe.039 d3roe.040 d3roe.041 d3roe.042 d3roe.043 d3roe.044 d3roe.045 d3roe.046 d3roe.047 d3roe.048 d3roe.049 d3roe.050
censored:/ssa/ifs # echo $SHELL
/bin/bash

anonymous
()
Ответ на: комментарий от sdio

разрешите поинтересоваться - а чем собственно мой вариант не подходит?

он решает задачу и не затрагивает лишних файлов с похожими названиями.

wieker ★★
()
Ответ на: комментарий от wieker

Разве я говорил, что не подходит? Подходит, просто часто есть несколько путей решения задачи.

Единственный недостаток -- у тебя в цикле 50 раз запускается cat + некоторая "сложность" из-за наличия цикла.

Встречный вопрос: чем плох вариант

mv d3roe.000 HAX_d3roe.000 ; cat d3roe.0[0-4][0-9] d3roe.050 > d3roe.rar ; mv HAX_d3roe.000 d3roe.000

sdio ★★★★★
()
Ответ на: комментарий от sdio

Пожалуй вот это самое то от sdio cat d3roe.0[0-4][0-9] d3roe.050 > d3roe.rar Всем ПАСИБА.

anonymous
()
Ответ на: комментарий от wieker

А для этого я второй вариант в том же сообщении предложил

ls -1 d3roe.0[0-4][0-9] d3roe.050 | grep -v d3roe.000 | xargs cat >> d3roe.rar

sdio ★★★★★
()
Ответ на: комментарий от anonymous

точно, я забыл про printf и форматирование вывода! спасибо, анонимус!

wieker ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.