Использование bash
Я пытаюсь извлечь только цифры перед строкой.Мне нужно извлечь числа из строки
Например:
7prob542334
Ожидаемый результат:
7
Но я бегу в ошибку, когда у меня есть
27prob542334
Ожидаемый результат:
27
вместо этого я получить 2
Это код, который я до сих пор:
max=$(ls -LR $ARCHIVE | grep ^prob | sed 's/_.*//' | uniq -c | sort -rn | tr -d ' '| head -n1 | head -c1)
Archive это путь к директории с подкаталогами, в которых хранятся файлы, такие как prob542334_05
. Я удалил символ подчеркивания и отсортировал файл в зависимости от его появления. Тогда я стараюсь извлекать только количество вхождений как "7"
или "27"
много других проблем с вашим кодом, такие как [ParsingLs] (http://mywiki.wooledge.org/ParsingLs), используя 'uniq' на возможно несортированном вводе и т. Д. ... хорошая идея для всего шаблона цитат .. для ex' grep '^ prob'' – Sundeep
, если вы можете описать, каков ваш полный вопрос, вы можете избежать [xy проблема] (http://meta.stackexchange.com/questions/66377/what-is-the-x y-problem) ... см. также: https://stackoverflow.com/help/mcve – Sundeep