Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
1) из строки вернуть символы, начиная с n-го символа по k-й;
2) частный случай - первые n символов;
3) вернуть символы начиная с первого найденного символа NNh и заканчивая первым найденным символом KKh.и еще: правильно я понимаю, что утилитой sed можно выполнить все те же функции, что и утилитами grep, tr ?
>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>
>1) из строки вернуть символы, начиная с n-го символа по k-й;sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"
>2) частный случай - первые n символов;
sed -e "s/\(.\{$n\}\).*/\1/"
>3) вернуть символы начиная с первого найденного символа NNh и заканчивая
>первым найденным символом KKh.sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"
>и еще: правильно я понимаю, что утилитой sed можно выполнить все те
>же функции, что и утилитами grep, tr ?
>>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>>1) из строки вернуть символы, начиная с n-го символа по k-й;
А если не пользоваться sed-ом? ;-)1. например в bash-е
n=3
Line="Строка"
rock=${Line:2:$n}>>2) частный случай - первые n символов;
2. там-же
Line="Строка"
Lin=${Line:0:$n}3. сразу не соображу, но подозреваю что тоже можно.
>>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>>
>>1) из строки вернуть символы, начиная с n-го символа по k-й;
>
>sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"
>
>>2) частный случай - первые n символов;
>
>sed -e "s/\(.\{$n\}\).*/\1/"
>
>>3) вернуть символы начиная с первого найденного символа NNh и заканчивая
>>первым найденным символом KKh.
>
>sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"
>
>>и еще: правильно я понимаю, что утилитой sed можно выполнить все те
>>же функции, что и утилитами grep, tr ?спасибо большое! работает.
есть еще несколько вопросов:1) как с помощью sed узнать количество строк в файле?
2) как с помощью sed вернуть порядковый номер строки, в которой впервые встречается образец 'text'?
1) как с помощью sed узнать количество
строк в файле?
2) как с помощью sed вернуть порядковый
номер строки, в которой впервые
встречается образец 'text'?
>1) как с помощью sed узнать количество
>строк в файле?sed -n -e '$='
>2) как с помощью sed вернуть порядковый
>номер строки, в которой впервые
>встречается образец 'text'?sed -n -e '/text/=' -e '/text/q'
А вообще-то, rtfm.