linux cat 筛选文件夹,Linux 基础命令 -- cat、sort、uniq、wc、head、tail、tee

cat - 连接文件

cat 命令读取一个或多个文件,然后复制它们到标准输出。你可以使用 cat 来显示 文件而没有分页

cat 经常被用来显示简短的文本文件。案例意义cat ls-output.txt读取文件标准输出

cat movie.mpeg.0* > movie.mpeg连接文件,cat 可以 接受不只一个文件作为参数,所以它也可以用来把文件连接在一起。比方说我们下载了一个 大型文件,这个文件被分离成多个部分(USENET 中的多媒体文件经常以这种方式分离), 我们想把它们连起来。我们能用这个命令把它们连接起来:因为通配符总是以有序的方式展开,所以这些参数会以正确顺序安排。

管道符号

使用管道操作符”|”(竖杠),一个命令的 标准输出可以管道到另一个命令的标准输入:command1 | command2

例如:ls -l /usr/bin | less

将ls -l /usr/bin命令的输出内容作为 less命令的输入,最终的运行是less分页的显示ls -l /usr/bin运行的结果内容

排序

管道线经常用来对数据完成复杂的操作。有可能会把几个命令放在一起组成一个管道线。 通常,以这种方式使用的命令被称为过滤器。过滤器接受输入,以某种方式改变它,然后 输出它。第一个我们想试验的过滤器是 sort。想象一下,我们想把目录/bin 和/usr/bin 中 的可执行程序都联合在一起,再把它们排序。

例如:ls /bin /usr/bin | sort | less

因为我们指定了两个目录(/bin 和/usr/bin),ls 命令的输出结果由有序列表组成, 各自针对一个目录。通过在管道线中包含 sort,我们改变输出数据,从而产生一个 有序列表。

过滤器

uniq 命令(报告或忽略重复行)经常和 sort 命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序 列表(详情查看 uniq 手册页),默认情况下,从数据列表中删除任何重复行。所以,为了确信 我们的列表中不包含重复句子(这是说,出现在目录/bin 和/usr/bin 中重名的程序),

我们添加 uniq 到我们的管道线中:ls /bin /usr/bin | sort | uniq | less

在这个例子中,我们使用 uniq 从 sort 命令的输出结果中,来删除任何重复行。如果我们想看到 重复的数据列表,让 uniq 命令带上”-d”选项,就像这样: ls /bin /usr/bin | sort | uniq -d | less

WC(字计数)

wc(字计数)命令是用来显示文件所包含的行数,字数和字节数。

grep(打印匹配行)

grep 是个很强大的程序,用来找到文件中的匹配文本。

grep 命令格式:grep pattern [file...]

例如:我们想在我们的程序列表中,找到文件名中包含单词”zip”的所有文件ls /bin /usr/bin | sort | uniq | grep zip

grep 有更方便的选项:”-i”告诉 grep 当执行搜索时忽略大小写(通常,搜索是大小写 敏感的);

”-v”选项会告诉 grep 只打印不匹配的行。

head / tail(打印文件开头部分/结尾部分)

有时候你不需要一个命令的所有输出。可能你只想要前几行或者后几行的输出内容。 head 命令打印文件的前十行,而 tail 命令打印文件的后十行。默认情况下,两个命令 都打印十行文本,但是可以通过”-n”选项来调整命令打印的行数。

例如:head -n 5 ls-output.txt  打印头5行数据

tail -n 5 ls_output.txt  打印结尾5行数据

ls /usr/bin | tail -n 5 打印 ls /usr/bin 运行结果的结尾5行数据

tail 有一个选项允许你实时的浏览文件。当观察日志文件的进展时,这很有用,因为 它们同时在被写入。在以下的例子里,我们要查看目录/var/log 里面的信息文件。在 一些 Linux 发行版中,要求有超级用户权限才能阅读这些文件,因为文件/var/log/messages 可能包含安全信息。

例如:tail -f /var/log/messages

使用”-f”选项,tail 命令继续监测这个文件,当新的内容添加到文件后,它们会立即 出现在屏幕上。这会一直继续下去直到你输入 Ctrl-c。

tee(从 Stdin 读取数据,并同时输出到 Stdout 和文件)

tee 程序从标准输入读入数据,并且同时复制数据 到标准输出(允许数据继续随着管道线流动)和一个或多个文件。当在某个中间处理 阶段来捕捉一个管道线的内容时,这很有帮助。这里,我们重复执行一个先前的例子, 这次包含 tee 命令,在 grep 过滤管道线的内容之前,来捕捉整个目录列表到文件 ls.txt:

命令:ls /usr/bin | tee ls.txt | grep zip

注释:tee程序(ls 程序管道过来的)获取标准输入(ls /usr/bin程序执行的结果)数据输出到标准输出同时也写入到ls.txt文件中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值