“/$”对“grep”意味着什么?

“/$”对“grep”意味着什么?

我正在使用下面这两个代码。

ls -lap . | grep -v "/$"
ls -lap . | grep -v "/"

在某些情况下,这两者会给我不同的输出。 $ 在这种情况下意味着什么?

答案1

它是一个表示行尾的正则表达式。该命令用于从ls输出中排除目录,因为它们将以/.我不确定ls -lap . 输出将包含/除行尾之外的任何位置的条件,但如果这种情况确实存在,则两个命令的输出将不相同。

请参见以下示例:

$ ls -lap .
total 12
drwxr-xr-x  3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x  2 jesse_b jesse_b 4096 Apr 13 10:00 bar/
-rw-r--r--  1 jesse_b jesse_b    0 Apr 13 09:59 foo
-rw-r--r--  1 jesse_b jesse_b    0 Apr 13 10:00 oof
$ ls -lap . | grep -v "/$"
total 12
-rw-r--r--  1 jesse_b jesse_b    0 Apr 13 09:59 foo
-rw-r--r--  1 jesse_b jesse_b    0 Apr 13 10:00 oof
$ ls -lap . | grep -v "o$"
total 12
drwxr-xr-x  3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x  2 jesse_b jesse_b 4096 Apr 13 10:00 bar/
-rw-r--r--  1 jesse_b jesse_b    0 Apr 13 10:00 oof
$ ls -lap . | grep -v "o"
drwxr-xr-x  3 jesse_b jesse_b 4096 Apr 13 10:00 ./
drwxr-xr-x 12 jesse_b jesse_b 4096 Apr 13 09:59 ../
drwxr-xr-x  2 jesse_b jesse_b 4096 Apr 13 10:00 bar/

相关内容