как сделать обратный срез?

В этом я новый. Я хотел бы спросить, как инвертировать разрез?

Пример;

./24feb/frfr 

Я хочу, чтобы после команды cut результат был ./feb/frfr .

Как это сделать?

 % echo ./24feb/frfr | cut -c 1-2,5- ./feb/frfr 

Это будет обратный cut -c 3-4 , который выводит все символы ( байты с текущими версиями GNU cut ) каждой строки, кроме 3-го и 4-го.

У реализации GNU cut также есть опция --complement для этого:

 cut --complement -c 3-4 

Чтобы удалить первую последовательность десятичных цифр, вы можете использовать sed :

 sed 's/[0-9]\{1,\}//' 

Чтобы удалить его, только если он находится на 3-й позиции:

 sed 's/^\(..\)[0-9]*/\1/' 

Или очень четко указать, какой шаблон должен вызывать удаление:

 sed 's|^\(./\)[0-9]*\([[:lower:]]\{3\}/\)|\1\2|' 

Это удаляет только <0-or-more-digits> в строке, соответствующей: ./<0-or-more-digits><3-lowercase-letters>/<anything> .

Это невозможно с разрезом. Сокращение зависит от наличия разделителя полей. В вашем примере желаемого ввода нет символа, который можно было бы использовать в качестве разделителя полей. Если вы не контролируете свой формат ввода, вырезать это не инструмент для работы. Это может быть достигнуто с помощью sed или awk. Например, In sed это будет:

sed 's/[0-9]//g'