小编maz*_*azs的帖子

为什么没有“?” 正则表达式字符在 sed 中产生匹配?

我有一个类似于../../sdd1并试图sdd从这里匹配的字符串。我正在尝试使用以下sed命令:

echo "../../sdd1" | sed 's:.*\([a-z]\{3\}\)[0-9]?:\1:' 
Run Code Online (Sandbox Code Playgroud)

它不会产生匹配。
但是当我使用

echo "../../sdd1" | sed 's:.*\([a-z]\{3\}\)[0-9]\{0,1\}:\1:'
Run Code Online (Sandbox Code Playgroud)

然后我得到了我的比赛,sdd。

我最好的猜测是我也应该转义?,类似于大括号 - 我试过它并且它有效,但我不知道为什么。

所以问题是,为什么[0-9]?正则表达式与1from不匹配sdd1,或者为什么我们必须转义 the?和大括号?

sed regular-expression

8
推荐指数
1
解决办法
6541
查看次数

Grep 精确数字和一些其他字符

我想解析一个包含由逗号或破折号分隔的 5 位数字的文件,例如:
12345,23456,34567-45678,12345-23456,34567

我的目标是找到格式不正确的行,例如。包含不是由 5 位数字组成的数字的行,由逗号或破折号以外的其他字符分隔。

我尝试使用以下命令 egrep 文件:

cat file.txt | egrep -v [-,]*[0-9]{5}[,-]*

  • 但是如果我有一个6位数的号码,它是匹配的,并且不显示该行
  • 如果我有一个 4 位数字,它不匹配,但同一行中的其他数字匹配,并且不显示该行

要指定行内容:

  • 数字必须是 5 位数字
  • 范围用破折号定义,如 12345-12389
  • 一行可以包含任何顺序的任何内容,从单个数字到多个数字和范围

请问有什么建议吗?

grep text-processing regular-expression

6
推荐指数
2
解决办法
9231
查看次数

l 和 ls 命令有什么区别

ls 命令显示以下内容:

a code controller.js mani sparat this ubuntu.gif

l 命令显示类似于:

a/ code/ controller.js mani/ sparat/ this/ ubuntu.gif

它们之间有什么区别?

command-line command

3
推荐指数
1
解决办法
1733
查看次数

有没有比使用 find 更快的方法来查找特定文件?

我必须在文件夹中找到没有特定权限的文件 (755)。该子目录还有其他子目录,总共包含数百万个文件,而find ./ -not -perm 755命令花费的时间太长。

是否有更高效/更快的命令来执行此任务(如 ls 与 grep 结合等)?

find files

1
推荐指数
1
解决办法
955
查看次数

不小心将“/”目录的权限更改为“chmod 660”

执行后$ sudo chmod 660 /,我无法使用除 root 之外的任何用户登录。如何恢复权限?

chmod

1
推荐指数
1
解决办法
1227
查看次数