Мне нужно написать сценарий, который находит все исполняемые файлы в каталоге. Я попробовал несколько способов реализовать это, и они действительно работают. Но мне интересно, есть ли способ сделать это лучше.
Итак, это был мой первый подход:
ls -Fla | grep \*$
Это работает нормально, потому что флаг -F выполняет всю работу за меня и добавляет к каждому исполняемому файлу звездочку, но, допустим, мне не нравится знак звездочки.
Итак, это был второй подход:
ls -la | grep -E ^-.{2}x
Это тоже работает нормально, я хочу использовать тире в качестве первого символа, тогда меня не интересуют следующие два символа, а четвертым символом должен быть x.
Но в требованиях есть некоторая двусмысленность, потому что я не знаю, нужно ли мне проверять права пользователя, группы или другого исполняемого файла. Так что это сработает:
ls -la | grep -E ^-.{2}x\|^-.{5}x\|^-.{8}x
Итак, я проверяю четвертый, седьмой и десятый символы как x.
Теперь мой реальный вопрос: есть ли лучшее решение, используя ls и grep с регулярным выражением, чтобы сказать:
Я хочу использовать grep только для этих файлов, имея хотя бы один x в десяти первых символах строки, созданной ls -la