Я хочу получить все комментарии всех файлов в папке.

И что я пытался

ls -R | awk '/<!--/,/-->/' >> result

Но это ничего не показывает в файле результатов.

Но если я использую результат awk '/<!--/,/-->/' >> result для файла, он работает.

HTML-тег комментария <!-- some text here --> .

Как мне это исправить.

2 ответа2

1

ls -R выведет только имя файла, а не его содержимое. Вы можете сделать это более простым способом, используя команду grep .

grep -rn '<!--.*-->'

Или, если вы хотите сделать это с помощью awk вы можете использовать cat * чтобы вывести все содержимое файла в каталог.

cat * | awk '/<!--/,/-->' 

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

Если вы хотите перечислить весь контент во всех каталогах. Вы можете попробовать это

find . -type f | xargs cat | awk '/<!--/,/-->/'
1

Ваш awk смотрит на имена файлов, а не на их содержимое. Вот лучший подход:

find ./ -type f -execdir grep "<!--.*-->" "{}" +

Он использует find чтобы получить список всех файлов, а затем передает их в grep который ищет текст, который вы ищете. Затем он выведет имя любого соответствующего файла, за которым следует двоеточие (:) и текст соответствующей строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .