我有一个类似于../../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?和大括号?
我想解析一个包含由逗号或破折号分隔的 5 位数字的文件,例如:
12345,23456,34567-45678,12345-23456,34567
我的目标是找到格式不正确的行,例如。包含不是由 5 位数字组成的数字的行,由逗号或破折号以外的其他字符分隔。
我尝试使用以下命令 egrep 文件:
cat file.txt | egrep -v [-,]*[0-9]{5}[,-]*
要指定行内容:
请问有什么建议吗?
ls 命令显示以下内容:
a code controller.js mani sparat this ubuntu.gif
l 命令显示类似于:
a/ code/ controller.js mani/ sparat/ this/ ubuntu.gif
它们之间有什么区别?
我必须在文件夹中找到没有特定权限的文件 (755)。该子目录还有其他子目录,总共包含数百万个文件,而find ./ -not -perm 755命令花费的时间太长。
是否有更高效/更快的命令来执行此任务(如 ls 与 grep 结合等)?