Всем привет!Мне нужна ваша помощь!
Пишу небольшой скриптик и с основной задачей справилась, но столкнулась с проблемой, что когда обрабатываю бинарник командой strings, она "сжирает" пустые строки.
Может кто знает, как этого можно избежать?И еще вопросик: подскажите как можно в бинарном файле отыскать пустую строку?
Заранее благодарю)
> Всем привет!
> Мне нужна ваша помощь!
> Пишу небольшой скриптик и с основной задачей справилась, но столкнулась с проблемой,
> что когда обрабатываю бинарник командой strings, она "сжирает" пустые строки.
> Может кто знает, как этого можно избежать?
> И еще вопросик: подскажите как можно в бинарном файле отыскать пустую строку?
> Заранее благодарю)Вот выдержка из man strings (http://www.opennet.me/man.shtml?topic=strings&category=1&rus...)
-min-len
-n min-len
--bytes=min-len
Print sequences of characters that
are at least min-len characters long,
instead of the default 4.
Попробуйте указать в этой опции значение "1".
> Пишу небольшой скриптик и с основной задачей справилась, но столкнулась с проблемой,
> что когда обрабатываю бинарник командой strings, она "сжирает" пустые строки.
> Может кто знает, как этого можно избежать?
> И еще вопросик: подскажите как можно в бинарном файле отыскать пустую строку?В бинарном файле нет строк! :)
А то, что там встречается CR/LF это случайность, хотя с большой вероятностью.
А переводы строки -- есть! %) Па-ра-докс...
> А переводы строки -- есть! %) Па-ра-докс...нишутя себе! однако!
> Всем привет!
> Мне нужна ваша помощь!
> Пишу небольшой скриптик и с основной задачей справилась, но столкнулась с проблемой,
> что когда обрабатываю бинарник командой strings, она "сжирает" пустые строки.
> Может кто знает, как этого можно избежать?
> И еще вопросик: подскажите как можно в бинарном файле отыскать пустую строку?выглядит как проблема X-Y http://mywiki.wooledge.org/XyProblem
что за основная задача-то?
>> Всем привет!
>> Мне нужна ваша помощь!
>> Пишу небольшой скриптик и с основной задачей справилась, но столкнулась с проблемой,
>> что когда обрабатываю бинарник командой strings, она "сжирает" пустые строки.
>> Может кто знает, как этого можно избежать?
>> И еще вопросик: подскажите как можно в бинарном файле отыскать пустую строку?
> выглядит как проблема X-Y http://mywiki.wooledge.org/XyProblem
> что за основная задача-то?В общем с тем, что я спрашивала, я уже разобралась.
У меня появился другой вопрос.
У меня есть много файликов в формате *txt, которые мне необходимо обработать(убрать пустые строки, добавить теги и.т.д) по одинаковому шаблону
Вопрос в следующем: все файлы хранятся в определенной директории, я загоняю их в массив, обрабатываю циклом каждый файл...вот кусочек кода:
declare -a scr=$(ls)
for i in ${scr[*]};
do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v '^!' $i ;
doneи дальше тупик, так как весь результат выводится на экран, а мне нужно грубо говоря перезаписать файлы
>[оверквотинг удален]
> В общем с тем, что я спрашивала, я уже разобралась.
> У меня появился другой вопрос.
> У меня есть много файликов в формате *txt, которые мне необходимо обработать(убрать
> пустые строки, добавить теги и.т.д) по одинаковому шаблону
> Вопрос в следующем: все файлы хранятся в определенной директории, я загоняю их
> в массив, обрабатываю циклом каждый файл...
> вот кусочек кода:
> declare -a scr=$(ls)
> for i in ${scr[*]};
> do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v '^!' $i ;эээ зачем во второй и далее комманде конвеера $i ???
> doneDIRLIST=`ls /some/dir`
TMPFILE=/var/mazafile
for i in $DIRLIST
do
sed 'blablabla' $i | grep 'blablabla' | somebin 'blablabla' > $TMPFILE
mv $TMPFILE $i
done
>[оверквотинг удален]
> Вопрос в следующем: все файлы хранятся в определенной директории, я загоняю их
> в массив, обрабатываю циклом каждый файл...
> вот кусочек кода:
> declare -a scr=$(ls)
> for i in ${scr[*]};
> do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v
> '^!' $i ;
> done
> и дальше тупик, так как весь результат выводится на экран, а мне
> нужно грубо говоря перезаписать файлыПопробуйте так:
do sed -i '/^$/d; s/ZY/\n/g; /^!/d' $i
P. S. Я намеренно не "причесывал" код и написал его, что называется, "быстро и грязно".
Облагородить его оставляю вам в качестве домашнего задания. :-)
>[оверквотинг удален]
> Вопрос в следующем: все файлы хранятся в определенной директории, я загоняю их
> в массив, обрабатываю циклом каждый файл...
> вот кусочек кода:
> declare -a scr=$(ls)
> for i in ${scr[*]};
> do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v
> '^!' $i ;
> done
> и дальше тупик, так как весь результат выводится на экран, а мне
> нужно грубо говоря перезаписать файлыСпасибо всем огромное)
Все работает)
>[оверквотинг удален]
>> вот кусочек кода:
>> declare -a scr=$(ls)
>> for i in ${scr[*]};
>> do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v
>> '^!' $i ;
>> done
>> и дальше тупик, так как весь результат выводится на экран, а мне
>> нужно грубо говоря перезаписать файлы
> Спасибо всем огромное)
> Все работает)ну и огород вы тут нагородили дорогуша
Я вам просто немножечко намекну
sed -i '/^$/d; s/ZY/\n/g; /^!/d' /somefolder/*/subfolder?/subfolder[1,2,5]/*.txt
>[оверквотинг удален]
>>> do sed '/^$/d' $i | sed 's/ZY/\n/g' $i | grep -v
>>> '^!' $i ;
>>> done
>>> и дальше тупик, так как весь результат выводится на экран, а мне
>>> нужно грубо говоря перезаписать файлы
>> Спасибо всем огромное)
>> Все работает)
> ну и огород вы тут нагородили дорогуша
> Я вам просто немножечко намекну
> sed -i '/^$/d; s/ZY/\n/g; /^!/d' /somefolder/*/subfolder?/subfolder[1,2,5]/*.txtА мне вот хотелось бы узнать, откуда в вашем намеке взялся этот "огород":
>/somefolder/*/subfolder?/subfolder[1,2,5]/*.txtИ заодно как бы вам намекнуть потоньше, что ваш намек немножечко припозднился? :-)
> И заодно как бы вам намекнуть потоньше, что ваш намек немножечко припозднился?
> :-)дааааа он походу решил побить рекорд по кол-ву идиотизма на квадратный пиксел ...
>> И заодно как бы вам намекнуть потоньше, что ваш намек немножечко припозднился?
>> :-)
> дааааа он походу решил побить рекорд по кол-ву идиотизма на квадратный пиксел
> ...Должон появиться Митрофанов и уложиться в sed и 6-8 символов. :)
> Должон появиться Митрофанов и уложиться в sed и 6-8 символов. :)
Можно я попробую? :)
sed 's/'"$1"'/'"$2"'/g' $i | tee $i
>> Должон появиться Митрофанов и уложиться в sed и 6-8 символов. :)Нет, то, что там выше _так даже я не ужму. :)
А вот это, благодаря новейшим изысканиям Учёных http://apenwarr.ca/log/?m=201102#28 , можно и сжать.
> Можно я попробую? :)
> sed 's/'"$1"'/'"$2"'/g' $i | tee $i$ sed -i s/$1/$2/g $i
>>> Должон появиться Митрофанов и уложиться в sed и 6-8 символов. :)
> Нет, то, что там выше _так даже я не ужму. :)
> А вот это, благодаря новейшим изысканиям Учёных http://apenwarr.ca/log/?m=201102#28
> , можно и сжать.
>> Можно я попробую? :)
>> sed 's/'"$1"'/'"$2"'/g' $i | tee $i
> $ sed -i s/$1/$2/g $iбез tee весь результат вылезет на экран
> без tee весь результат вылезет на экранА вот что говорит man sed о ключе -i:
-i[SUFFIX], --in-place[=SUFFIX]edit files in place (makes backup if extension supplied)
В общем, с этим ключом sed ничего на экран не вываливает, а правит сам файл. ;-)P. S. Кстати, с tee результат помимо файла вылезет также и на экран. :-)
вам линейку дать чтобы удобней мерятся? :)
> вам линейку дать чтобы удобней мерятся? :)Дядьку, вы обо что толкуете? :)
Товарищ был мало-мало заблуждаться, я был мало-мало показать ему, где он заблудился,
вот и все, однако. :)
топегстартер еще двадцать первого дня прошлого месяса положил на это ... ))
> топегстартер еще двадцать первого дня прошлого месяса положил на это ... ))Да кому он теперь нужен? :)
И без него (или нее) здесь достаточно интересно. :)
>> без tee весь результат вылезет на экран
> А вот что говорит man sed о ключе -i:
>-i[SUFFIX], --in-place[=SUFFIX]
>
> edit files in place (makes backup if extension supplied)
>
> В общем, с этим ключом sed ничего на экран не вываливает, а
> правит сам файл. ;-)
-i extension
Edit files in-place similarly to -I, but treat each file indepen-
dently from other files. In particular, line numbers in each
file start at 1, the ``$'' address matches the last line of the
current file, and address ranges are limited to the current file.
(See Sed Addresses.) The net result is as though each file were
edited by a separate sed instance.
судя по всему, у нас разные sed и tee :)
> судя по всему, у нас разные sed и tee :)наконецта до кого то дошло ))
> судя по всему, у нас разные sed и tee :)Не ровён час FreeBSD?
Если у тебя ещё и _bash "разный", то и вообще -- "юникс". 8-]
Уверен, что комментариев было бы на порядок меньше, если бы топик стартера звали бы не Александрой, а, например, Василием.