我想删除/etc/securetty
文件中除 consoletty[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
选项,将有效地在它们之间进行“或”运算。在这里,我还使用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]*