Redian新闻
>
在 Linux 中使用 cat 命令 | Linux 中国

在 Linux 中使用 cat 命令 | Linux 中国

科技
 
导读:cat 命令的用途不仅仅是显示文件内容。                                       
本文字数:3971,阅读时长大约:5分钟

cat 命令的用途不仅仅是显示文件内容。

cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。

cat 实际上代表 “连接(concatenate)”,创建它是为了 合并文本文件🔗 linuxhandbook.com:443。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。

在 Linux 中使用 cat 命令

要使用 cat 命令,你必须遵循给定的命令语法:

  1. cat [options] Filename(s)

这里:

◈ [options] 用于修改 cat 命令的默认行为,例如使用 -n 选项获取每行的数字。
◈ Filename 是你输入要使用的文件的文件名的位置。

为了简单起见,我将在本指南中使用名为 Haruki.txt 的文本文件,其中包含以下文本行:

  1. Hear the Wind Sing (1979)
  2. Pinball, 1973 (1980)
  3. A Wild Sheep Chase (1982)
  4. Hard-Boiled Wonderland and the End of the World (1985)
  5. Norwegian Wood (1987)
  6. Dance Dance Dance (1990)
  7. South of the Border, West of the Sun (1992)
  8. The Wind-Up Bird Chronicle (1994)
  9. Sputnik Sweetheart (1999)
  10. Kafka on the Shore (2002)
  11. After Dark (2004)
  12. 1Q84 (2009-2010)
  13. Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
  14. Men Without Women (2014)
  15. Killing Commendatore (2017)

那么,在没有任何选项的情况下使用时,输出会是什么?好吧,让我们看一下:

  1. cat Haruki.txt

use cat command in Linux

正如你所看到的,它打印了整个文本文件!

但你可以做的远不止这些。让我向你展示一些实际例子。

1、创建新文件

大多数 Linux 用户使用 touch 命令来 创建新文件🔗 itsfoss.com,但使用 cat 命令也可以完成相同的操作!

在这种场景下,cat 命令比 touch 命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗?

为此,你需要使用 cat 命令,将文件名附加到 > 后面,如下所示:

  1. cat > Filename

例如,在这里,我创建了一个名为 NewFile.txt 的文件:

  1. cat > NewFile.txt

当你这样做了,就会有一个闪烁的光标要求你写一些东西,最后,你可以使用 Ctrl + d 来保存更改。

如果你想创建一个空文件,则只需按 Ctrl + d 而不进行任何更改。

这就好了!现在,你可以使用 ls 命令来显示 当前工作目录的内容🔗 itsfoss.com

use the ls command to list the contents of the current working directory

2、将文件内容复制到另一个文件

考虑一个场景,你要将 FileA 的文件内容重定向到 FileB

当然,你可以复制和粘贴。但是如果有几百或几千行怎么办?

简单。你可以使用 cat 命令来重定向数据流。为此,你必须遵循给定的命令语法:

  1. cat FileA > FileB

🚧 如果使用上述语法重定向文件内容,它将删除 FileB 的文件内容,然后重定向 FileA 的文件内容。

例如,我将使用两个文本文件 FileA 和 FileB,其中包含以下内容:

check the file contents using the cat command

现在,如果我使用从 FileA 到 FileB 的重定向,它将删除 FileB 的数据,然后重定向 FileA 的数据:

  1. cat FileA > FileB

redirect the file content using the cat command

同样,你可以对多个文件执行相同的操作:

  1. cat FileA FileB > FileC

redirect file content of multiple files using the cat command

可以看到,上面的命令删除了 FileC 的数据,然后重定向了 FileA 和 FileB 的数据。

3、将一个文件的内容附加到另一个文件

有时你想要将数据附加到现有数据,在这种情况下,你必须使用 >> 而不是单个 >

  1. cat FileA >> FileB

例如,在这里,我将把两个文件 FileA 和 FileB 重定向到 FileC

  1. cat FileA.txt FileB.txt >> FileC.txt

redirect file content without overriding using the cat command

如你所见,它保留了 FileC.txt 的数据,并将数据附加在末尾。

💡 你可以使用 >> 向现有文件添加新行。使用 cat >> filename 并开始添加所需的文本,最后使用 Ctrl+D 保存更改。

4、显示行数

你可能会遇到这样的情况,你想查看行数,这可以使用 -n 选项来实现:

  1. cat -n File

例如,在这里,我将 -n 选项与 Haruki.txt 一起使用:

get the number of the lines in the cat command

5、删除空行

在文本文档中留下多个空白行? cat 命令将为你修复它!

为此,你所要做的就是使用 -s 标志。

但使用 -s 标志有一个缺点。你仍然留有一行空白:

remove blank lines with the cat command

正如你所看到的,它有效,但结果接近预期。

那么如何删除所有空行呢?通过管道将其传递给 grep 命令:

  1. cat File | grep -v '^$'

这里,-v 标志将根据指定的模式过滤掉结果,'^$' 是匹配空行的正则表达式。

以下是我在 Haruki.txt 上使用它时的结果:

  1. cat Haruki.txt | grep -v '^$'

remove all the blank lines in text files using the cat command piped with grep regular expression

当获得完美的输出,你可以将其重定向到文件以保存输出:

  1. cat Haruki.txt | grep -v '^$' > File

save output of cat command by redirection

这就是你到目前为止所学到的

以下是我在本教程中解释的内容的快速摘要:

< 如显示不全,请左右滑动 >
命令描述
cat <Filename>将文件内容打印到终端。
cat >File创建一个新文件。
cat FileA > FileBFileB 的文件内容将被 FileA 覆盖。
cat FileA >> FileBFileA 的文件内容将附加到 FileB 的末尾。
cat -n File显示行数,同时省略文件的文件内容。
cat File | more将 cat 命令通过管道连接到 more 命令以处理大文件。请记住,它不能让你向上滚动!
cat File | less将 cat 命令通过管道传输到 less 命令,这与上面类似,但它允许你双向滚动。
cat File | grep -v '^$'从文件中删除所有空行。

🏋️ 练习时间

如果你学到了新东西,用不同的可能性来执行它是最好的记忆方式。

为此,你可以使用 cat 命令进行一些简单的练习。它们将是超级基本的,就像 cat 一样是最基本的命令之一🔗 learnubuntu.com:443

出于练习目的,你可以 使用 GitHub 上的文本文件🔗 github.com:443

◈ 如何使用 cat 命令创建空文件?
◈ 将 cat 命令生成的输出重定向到新文件 IF.txt
◈ 能否将三个或更多文件输入重定向到一个文件?如果是,该如何做?

(题图:MJ/f06c9b9c-689e-4a67-abe9-0487e26bd34b)


via: https://itsfoss.com/cat-command/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :geekpi
💎💎💎💎
翻译: 1976.5 篇
|
贡献: 3556 天
2013-10-25
2023-07-21
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
ls 命令输出的颜色:它们意味着什么? | Linux 中国Reminders:一个漂亮的开源 Linux 应用,可帮助你完成工作 | Linux 中国在 Linux 文件系统中使用 attr 添加扩展属性 | Linux 中国Kali Linux 简介:你需要了解的一切 | Linux 中国笑谈邂逅(4)章熊先生激励我不断前行Elon MuskNot teaching and explaining the relevance is core probl你好,我是筚(bì)篥( lì)!在Linux系统中使用Vim读写远程文件的命令详解如何在 GitLab 执行器中使用 Podman | Linux 中国血压飙升啊兄弟们,用 Windows运行 Linux 命令!使用 Linux 让旧电脑焕发新颜 | Linux 中国超越 Bash: 9 个不太知名的 Linux Shell 及其功能 | Linux 中国巴黎市长将重修Châtelet 广场以方便行人测评适用于 Linux 中 Wayland 的最佳屏幕录制软件 | Linux 中国Tcpdump 命令实际示例,Linux 下功能最强大的网络抓包工具在 Linux 中使用 cp 命令 | Linux 中国【𝐂𝐚𝐥𝐧𝐢𝐊𝐞𝐚𝐧双皮奶无痕内裤】49元三条!巨巨巨好穿 !!简直就是辣妹顶配,食品级冰箱收纳盒【一日团】𝐂𝐚𝐥𝐧𝐢𝐊𝐞𝐚𝐧双皮奶内衣裤,软弹有度,上身0束缚~Linux0基础入门,教你如何在Shell中使用正则表达式在 Linux 中使用 cd 命令 | Linux 中国Linux 信息显示与搜索命令看热闹不怕事儿大如何在命令行上舒适地生存? | Linux 中国Arch Linux 下全面使用 Wayland 的配置指南 | Linux 中国历史名城:耶路撒冷600条最强Linux命令总结天生一棵好韭菜关于Chest cat scan 胸部CTBash 基础知识系列 #5:在 Bash 中使用数组 | Linux 中国570个Linux超全命令大全,带你实现Linux命令自由11 个不可变 Linux 发行版,适合那些想要拥抱未来的人们 | Linux 中国你的旧电脑是 “过时” 了,还是使用 Linux 的机会? | Linux 中国【城事】巴黎市长将重修Châtelet 广场以方便行人为什么黑客更喜欢使用 Kali Linux? | Linux 中国Rust 基础系列 #7: 在 Rust 中使用循环 | Linux 中国如何在 Rocky Linux 9 / AlmaLinux 9 上安装 KVM | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。