![$ 기호로 시작하는 모든 단어 나열](https://linux55.com/image/210186/%24%20%EA%B8%B0%ED%98%B8%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EB%8B%A8%EC%96%B4%20%EB%82%98%EC%97%B4.png)
$ 기호로 시작하는 단어인 PHP 파일의 모든 변수를 나열하고 싶습니다.
grep -o '\bm\w*' /var/www/html/my_site/index.php
이 명령은 "m"으로 시작하는 모든 단어를 나열하는 데 사용됩니다.
그러나 이것은 grep -o '\b$\w*' /var/www/html/my_site/index.php
PHP 파일의 모든 단어를 나열하지는 않습니다. "$" 기호를 이스케이프 처리해 grep -o '\b\$\w*' /var/www/html/my_site/index.php
도 작동하지 않습니다.
답변1
문제는 \b
단어 문자와 단어가 아닌 문자 사이의 너비가 0인 경계입니다. $
단어 문자가 아님
너는 필요할지도 모른다:
grep -Po '(?<=^|\W)\$\w+' /var/www/html/my_site/index.php
$variable
줄의 시작 부분이나 단어가 아닌 문자 뒤에서 찾아야 합니다.
echo '$foo $bar $baz' | grep -Po '(?<=^|\W)\$\w+'
$foo
$bar
$baz