Чтобы найти повторения определенной цифры в числе

Вы можете просто mvуказать файл, как обычно, вам просто нужно заключить имя файла в кавычки и нажать клавишу возврата. Так:

$ ls -b
  file\n
$ mv "file
> " file
$ ls -b
  file

Это должно сработать для вас, это сработало для меня в прошлом. Это также сработало бы в исходном случае, вам просто нужно было бы вернуть перед именем файла.

Добро пожаловать в Unix StackExchange!

-2
22.08.2021, 19:15
2 ответа

С GNUgrep:

$ echo 12451 | grep -o. | grep -c 1
2

С GNUawk:

$ echo 12451 | gawk -v num=1 'BEGIN { FS = "" } {for (i = 1; i <= NF; i++) if ($i == $num) count++ } END {print $count}'
2

С POSIX awk, предложенным в этом комментарий:

$ echo 12451 | awk '{print gsub(/1/,"")}'
2
2
22.08.2021, 20:17

Предположим, что данные поступают на стандартный ввод (, например. трубка изecho):

LC_ALL=C tr -d -c '1' | LC_ALL=C wc -c

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

Предполагая, что данные хранятся в переменной оболочки, value, например, в.bash:

ones=${value//[\!1]/}; echo "${#ones}"

Это практически то же самое, что и первая команда. Он удаляет все символы, отличные от -1, из значения $value, присваивает полученную строку новой переменной onesи выводит длину этой строки.

1
23.08.2021, 10:19

Теги

Похожие вопросы