Wyszukiwanie plików w Linuksie po zawartości
Jak w Linuksie wyszukiwać pliki po zawartości? Można powiedzieć „nic bardziej prostszego” ponieważ Linux od narodzin został stworzony z myślą aby operacje tego typu dało się przeprowadzać możliwie szybko i aby umożliwić administratorom bardzo bogaty zakres możliwości, a wyszukiwanie plików po zawartości to jedna z pierwszych lub bardzo często stosowanych rzeczy.
wyszukiwanie plików po zawartości z użyciem FIND
możemy pokazać albo nazwy plików:
find ./ -type f -exec grep -l timer_ {} \;
albo ich zawartość z poszukiwanym słowem:
find ./ -type f -exec grep -n timer_ {} \; 32: <?php printf(__('%1$s queries in %2$s seconds', 'mystique'), get_num_queries(), timer_stop(0, 2)); ?>
wyszukiwanie plików po zawartości z użyciem GREP
najbardziej podstawowe użycie
grep -lir "fragment pliku" ./
ten sam efekt jak w poprzednim punkcie (z wyszukaniem funkcji timer_…()) możemy uzyskać stosując krótszą formę:
grep -rl "timer_" ./
wyszukiwanie z operatorem logicznym OR
grep 'pattern1\|pattern2' filename
lista opcji:
| *opcja* | wyjaśnienie |
| -r | recursive |
| -n | show line number |
| -w | whole word |
| -l | list of files, use only -n or -l |
| -E | extended REGEXP |
wyszukiwanie plików po zawartości z użyciem REGEX
wszystkie konstrukcje sprowadzają się do tego samego, wyszukiwanie z operatorem OR:
grep -rnE 'get_option(|get_theme_mod(' wp-content/theme/mytheme egrep 'pattern1|pattern2' filename grep -e pattern1 -e pattern2 filename
wyszukiwanie z operatorem logicznym AND
grep -E 'pattern1.*pattern2' filename grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename grep -E 'pattern1' filename | grep -E 'pattern2'
dopadowanie odwrotne (operator NOT)
grep -v 'pattern1' filename
więcej przykładów:
https://www.thegeekstuff.com/2011/10/grep-or-and-not-operators
http://www.commandlinefu.com/commands/view/2244/find-files-containing-text
https://www.cyberciti.biz/faq/howto-search-find-file-for-text-string/
https://www.linode.com/docs/tools-reference/tools/find-files-in-linux-using-the-command-line
http://www.wikihow.com/Find-a-File-in-Linux
https://www.howtoforge.com/tutorial/linux-grep-command/
Komentarze