Как вырезать определенное количество символов из вывода команды, где ширина среза равна числу символов в $срез

slice(){ cut -c$((${#1}+1))-; }; ls -l | slice "-rw-r--r--"


Команда slice() является пользовательской функцией в командной оболочке. Она использует команду cut для выполнения среза строк в выводе команды ls -l.

Функция slice() принимает один аргумент, который представляет шаблон строки, по которому будет производиться срез. Аргумент $1 — это сам шаблон.

Команда cut -c$((${#1}+1))- выполняет срез, используя числовой аргумент $((${#1}+1)). Этот аргумент равен количеству символов в шаблоне $1, увеличенному на единицу. Знак - означает, что будут выбраны все символы, начиная с указанной позиции и до конца строки.

В данном случае, команда ls -l | slice "-rw-r--r--" выведет все строки из вывода команды ls -l, в которых шаблон -rw-r--r-- будет присутствовать на начальной позиции. То есть, будут выведены только строки, которые начинаются с -rw-r--r--.

Альтернативой может быть использование команды grep с регулярными выражениями для фильтрации строк вывода команды ls -l. Например: ls -l | grep "^-rw-r--r--".

Передаваемые команде аргументы представляют собой шаблон строки, по которому будет производиться срез.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *