#linux #shell #unix
#linux #оболочка #unix
Вопрос:
Как следует из названия, мне был предоставлен каталог, полный 1000 текстовых файлов, содержащих только 5 чисел 1000 или меньше. Затем мне нужно найти, список файлов с номерами, равными 2000
Сейчас почти все мои знания в области программирования — это C , Java, Javascript, так что я совсем новичок во всем этом. Это первый урок и список упражнений, все предыдущие являются базовыми, одна строка в командной строке, поэтому я чувствую, что сделал это неправильно, и мне было интересно, есть ли лучший, более простой способ.
#!/bin/bash
for i in {1..1000}
do
if (($i < 10));
then
perl -nle '$sum = $_ } END { $int = $sum' 0000$i
elif (($i < 100));
then
perl -nle '$sum = $_ } END { $int = $sum' 000$i
elif (($i < 1000));
then
perl -nle '$sum = $_ } END { $int = $sum' 00$i
else
perl -nle '$sum = $_ } END { $int = $sum' 0$i
fi
if [[ $int -eq 2718 ]]
then
if (($i < 10));
then
echo 0000$i
elif (($i < 100));
then
echo 000$i
elif (($i < 1000));
then
echo 00$i
else
echo 0$i
fi
fi
done
P.S Это не задание, это практика
Комментарии:
1. ваше
i
значение max равно10
, поэтому этиi<100
проверки и ‘i<1000’ всегда будут верными2. Зачем запускать целую кучу процессов на Perl — вы могли бы сделать все это на Perl или awk.
3. Предполагается ли, что вы используете только bash? Если нет, сделайте то же самое с
perl
илиawk
. Дайте нам знать.4. Предыдущий вопрос заключался в том, чтобы найти, какие файлы содержат число 999. Очевидно, что это действительно просто, просто используя grep. Мне интересно, есть ли простой способ, подобный этому. Вышесказанное — единственное, о чем я мог подумать.