/etc/securetty
콘솔 tty[0-9]
과 vc/[09]
.
~]# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
ttyS0
ttysclp0
egrep
명령을 사용하여 출력을 수집 하려고 합니다 . 하지만 1-9 "tty 또는 vc/"만 얻는 방법을 모르겠습니다.
~]# egrep "console|vc/|tty" /etc/securetty
다음 결과를 얻을 수 있도록 도와주세요.
~]# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
답변1
거기쯤이야!
egrep 'console|vc/[0-9]$|tty[0-9]$' /etc/securetty
일반적인 팁은 변수를 대체해야 하는 경우가 아니면 큰따옴표보다는 작은따옴표를 사용하는 것입니다.
답변2
이것은 나에게 효과적입니다.
# sed '/^console$\|^vc\/[1-9]$\|^tty[1-9]$/!d' /etc/securetty
확인한 후 플래그를 사용하여 파일을 교체 -i
할 수 있습니다. sed
하지만 먼저 파일을 백업하세요!
답변3
grep
각각 옵션이 있는 여러 패턴을 제공하면 -e
패턴 간에 효과적으로 OR이 발생합니다. 여기에서는 grep
해당 -x
옵션을 사용하여 완전한 줄과 일치하도록 만듭니다.
$ grep -x -e console -e 'tty[0-9]' -e 'vc/[0-9]' /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
나는 당신이 의미한다고 생각하는 vc/[09]
패턴을 수정했습니다.vc/[0-9]
숫자 및(또는 더 큰 정수)가 포함된 장치 이름도 원하는 경우 tty
패턴으로 및를 사용하세요.vc
10
11
tty[0-9]*
vc[0-9]*