Grep linux 文件系统中的常规文件并显示其内容
Grep regular files in a linux File System and show their content
如何显示与grep命令匹配的普通文件的内容?例如,我 grep 一个目录以查看它拥有的常规文件。我使用下一行仅查看常规文件:
ls -lR | grep ^-
然后我想显示在那里找到的文件的内容。我该怎么做?
我会做类似的事情:
$ cat `ls -lR | egrep "^-" | rev | cut -d ' ' -f 1 | rev`
- 使用 ls 查找文件
- grep 找到您的模式
- 反转整个结果
- 截取第一个文件分隔字段得到文件名(带空格的文件有问题)
- 将文件名反转回正常方向
- 反引号将执行它,return 文件名列表到 cat。
或者我可能采用的方法是使用 vim 查看每个文件。
$ vim `ls -lR | egrep "^-" | rev | cut -d ' ' -f 1 | rev`
感觉就像你试图递归地只查找文件。这就是我在这些情况下所做的:
$ vim `find . -type f -print`
有多种方法可以做到这一点。将尝试在这里为您提供一些简单而干净的方法。他们都用 space.
处理文件名
$ 找到 . -类型 f -print0 | xargs -0 cat
-print0 添加了一个空字符 '\0' 分隔符,您需要调用 xargs -0 来识别空分隔符。如果不这样做,文件名中的 whitespace 会产生问题。
例如没有 -print0 文件名:abc 123.txt 和 1.inc 将被读取作为三个单独的文件 abc、123.txt 和 1.inc.
with -print0 这变成 abc 123.txt'\0' 和 1.inc'\0' 将被读作 abc 123.txt 和 1.inc
至于xargs,它可以接受输入作为参数。命令 1 | xargs command2 表示 command1 的输出传递给 command2.
cat 显示文件内容。
$ 找到 . -type f -exec echo {} \; -exec cat {} \;
这只是使用查找命令。它找到所有文件(类型 f),调用 echo 输出文件名,然后调用 cat 显示其内容。
如果您不需要文件名,请省略 -exec echo {} \;
或者您可以使用 cat 命令并传递 find 的输出。
$ 猫`找到。 -type f -print`
如果你想一个一个地滚动浏览多个文件的内容。你可以使用。
$ 少`找。 -type f -print`
使用 less 时,您可以通过 :n 和 :p 分别导航下一个和上一个文件。按 q 退出 less.
如何显示与grep命令匹配的普通文件的内容?例如,我 grep 一个目录以查看它拥有的常规文件。我使用下一行仅查看常规文件:
ls -lR | grep ^-
然后我想显示在那里找到的文件的内容。我该怎么做?
我会做类似的事情:
$ cat `ls -lR | egrep "^-" | rev | cut -d ' ' -f 1 | rev`
- 使用 ls 查找文件
- grep 找到您的模式
- 反转整个结果
- 截取第一个文件分隔字段得到文件名(带空格的文件有问题)
- 将文件名反转回正常方向
- 反引号将执行它,return 文件名列表到 cat。
或者我可能采用的方法是使用 vim 查看每个文件。
$ vim `ls -lR | egrep "^-" | rev | cut -d ' ' -f 1 | rev`
感觉就像你试图递归地只查找文件。这就是我在这些情况下所做的:
$ vim `find . -type f -print`
有多种方法可以做到这一点。将尝试在这里为您提供一些简单而干净的方法。他们都用 space.
处理文件名$ 找到 . -类型 f -print0 | xargs -0 cat
-print0 添加了一个空字符 '\0' 分隔符,您需要调用 xargs -0 来识别空分隔符。如果不这样做,文件名中的 whitespace 会产生问题。
例如没有 -print0 文件名:abc 123.txt 和 1.inc 将被读取作为三个单独的文件 abc、123.txt 和 1.inc.
with -print0 这变成 abc 123.txt'\0' 和 1.inc'\0' 将被读作 abc 123.txt 和 1.inc
至于xargs,它可以接受输入作为参数。命令 1 | xargs command2 表示 command1 的输出传递给 command2.
cat 显示文件内容。
$ 找到 . -type f -exec echo {} \; -exec cat {} \;
这只是使用查找命令。它找到所有文件(类型 f),调用 echo 输出文件名,然后调用 cat 显示其内容。
如果您不需要文件名,请省略 -exec echo {} \;
或者您可以使用 cat 命令并传递 find 的输出。
$ 猫`找到。 -type f -print`
如果你想一个一个地滚动浏览多个文件的内容。你可以使用。
$ 少`找。 -type f -print`
使用 less 时,您可以通过 :n 和 :p 分别导航下一个和上一个文件。按 q 退出 less.