Показать только файлы, имя которых начинается с определенной буквы

Давайте займемся археологией. Статья Торвальда 1991 года, LINUX --бесплатное ядро ​​Unix -ядро ​​​​386 (, которое вы можете прочитать онлайн здесь)обсуждает версию 0.03, как видно из списка файлов в описанном FTP справочник (акцент мой):

  • linux-0.03.tar.Z--complete source to the operating system, in a 16-bit compressed tar archive. [... ]
  • README, RELNOTES-0.01, INSTALLATION--ascii files containing some (somewhat out-of-date) information about LINUX.

Также обратите внимание, что он включает примечания к выпуску первой версии, на которую действительно ссылаются с помощью 0.01. Также согласно Википедии:

By September 1991, version 0.01 of the Linux kernel was released on the FTP server (ftp.funet.fi) of the Finnish University and Research Network (FUNET). It had 10,239 lines of code. In October 1991, version 0.02 of the Linux kernel was released.[2]

Здесь цитируется сообщение Торвальдса, опубликованное в октябре 1991 года в группе новостей comp.os.minix , в котором описывается версия0.02:

As I mentioned a month(?) ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it.

Наконец,первая версия ядра, по-видимому, все еще доступна в своем первоначальном доме по адресуhttp://www.nic.funet.fi/pub/Linux/kernel/Historic/. Файл, который вы можете скачать здесь::

linux-0.01.tar.gz

Итак, поскольку мы все еще можем видеть файл 0.01и иметь доказательства того, что вторая версия была 0.02, кажется совершенно очевидным, что первая версия действительно была 0.01, а не 0.0.1.

-4
25.09.2019, 13:53
3 ответа

Как указано в ОП, используйте grep и покажите атрибуты. С GNU grep:

ls -Rlp | grep -v / | grep -P "(?<=:[0-9]{2}[[:blank:]])p.*"
0
28.01.2020, 05:20

Ваш код:

 ls -Rl | awk '/^-/ && $NF ~/^p/'   

Список файлов распечатывается только в том случае, если он удовлетворяет двум указанным ниже условиям.

  • /^-/строка начинается с дефиса.
  • $NF ~ /^p/последний столбец начинается со с. (только если у нас нет места в имени файла)

Я бы предпочел использовать команду findвместо синтаксического анализаls

find. -type f -name "p*" -ls
0
28.01.2020, 05:20

Если я не упустил что-то важное в вашем вопросе, я бы сказал, что вы можете сделать это просто с помощью подстановки файлов:

ls -l p*

Эта команда выводит список файлов и каталогов, начинающихся с p. Нет необходимости использовать grep.

0
28.01.2020, 05:20

Теги

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