Nice programing

달러 기호 ($)를 grep하는 방법은 무엇입니까?

nicepro 2020. 11. 14. 11:07
반응형

달러 기호 ($)를 grep하는 방법은 무엇입니까?


% cat temp
$$$ hello1
$$  hello2
    hello3
##  hello4
    hello5 $$$
% cat temp | grep "$$$"
Illegal variable name.
% cat temp | grep "\$\$\$"
Variable name must contain alphanumeric characters.
%

나는 grep을 원 $$$하고 그 결과는

% cat temp | grep <what should go here?>
$$$ hello1
    hello5 $$$
%

구별하기 위해 프롬프트를 %.

  • 여기서 문제는 무엇입니까?
  • grep 문자열 은 무엇이어야 합니까?

문제는 쉘이 큰 따옴표로 묶인 문자열 내에서 변수 이름을 확장한다는 것입니다. 따라서 "$$$"첫 번째로 시작하는 변수 이름을 읽으려고합니다 $.

반면 작은 따옴표에서는 변수가 확장되지 않습니다. 따라서 '$$$' 것이다 그것은 사실이 아니었다면 - 작업 $종료 라인을 나타내는 정규 표현식에서 특수 문자입니다. 따라서 이스케이프해야합니다 '\$\$\$'..


큰 따옴표를 사용 "하거나 아무 것도 사용하지 않을 때\: "\\\$\\\$\\\$"

cat t | grep \\\$\\\$\\\$ 

작은 따옴표 '를 사용하면 다음을 사용할 수 있습니다.

cat t | grep '\$\$\$'

$ grep '\$\$\$' temp
$$$ hello1
hello5 $$$

명령에 슈퍼 플 로스 '고양이'가 있습니다.


나를 위해 작동 :

user@host:~$ cat temp | grep '\$\$\$'
$$$ hello1
hello5 $$$
user@host:~$ 

어때 ^.*[$]{3}.*$


이 명령과 동일한 문제

complete -W "\`grep -oE '^[a-zA-Z0-9_.-]+:([^=]|$)' Makefile \`"

잘못된 변수 이름입니다.

참고 URL : https://stackoverflow.com/questions/3759926/how-to-grep-for-the-dollar-symbol

반응형