From 61c9e8e7e809cd9133a0595f7d30b9b1d6a86839 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 23 Jul 2023 14:44:22 +0800 Subject: [PATCH] RP @geekpi https://linux.cn/article-16025-1.html --- ...30627.0 ⭐️⭐️ Using cat Command in Linux.md | 73 ++++++++++--------- 1 file changed, 39 insertions(+), 34 deletions(-) rename {translated/tech => published}/20230627.0 ⭐️⭐️ Using cat Command in Linux.md (67%) diff --git a/translated/tech/20230627.0 ⭐️⭐️ Using cat Command in Linux.md b/published/20230627.0 ⭐️⭐️ Using cat Command in Linux.md similarity index 67% rename from translated/tech/20230627.0 ⭐️⭐️ Using cat Command in Linux.md rename to published/20230627.0 ⭐️⭐️ Using cat Command in Linux.md index b0b6a0a660..f1f001b639 100644 --- a/translated/tech/20230627.0 ⭐️⭐️ Using cat Command in Linux.md +++ b/published/20230627.0 ⭐️⭐️ Using cat Command in Linux.md @@ -3,22 +3,24 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-16025-1.html" 在 Linux 中使用 cat 命令 ====== -cat 命令用于打印文本文件的文件内容。 +![][0] -至少,大多数 Linux 用户都是这么做的,而且没有什么问题。 +> `cat` 命令的用途不仅仅是显示文件内容。 -cat 实际上代表“concatenate”(连接),创建它是为了[合并文本文件][1]。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。 +`cat` 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。 + +`cat` 实际上代表 “连接concatenate”,创建它是为了 [合并文本文件][1]。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。 ### 在 Linux 中使用 cat 命令 -要使用 cat 命令,你必须遵循给定的命令语法: +要使用 `cat` 命令,你必须遵循给定的命令语法: ``` cat [options] Filename(s) @@ -26,10 +28,10 @@ cat [options] Filename(s) 这里: -- `[options]` 用于修改 cat 命令的默认行为,例如使用 `-n` 选项获取每行的数字。 +- `[options]` 用于修改 `cat` 命令的默认行为,例如使用 `-n` 选项获取每行的数字。 - `Filename` 是你输入要使用的文件的文件名的位置。 -为了简单起见,我将在本指南中使用名为 “Haruki.txt” 的文本文件,其中包含以下文本行: +为了简单起见,我将在本指南中使用名为 `Haruki.txt` 的文本文件,其中包含以下文本行: ``` Hear the Wind Sing (1979) @@ -61,13 +63,13 @@ cat Haruki.txt 但你可以做的远不止这些。让我向你展示一些实际例子。 -#### 1. 创建新文件 +#### 1、创建新文件 -大多数 Linux 用户使用 touch 命令来[创建新文件][3],但使用 cat 命令也可以完成相同的操作! +大多数 Linux 用户使用 `touch` 命令来 [创建新文件][3],但使用 `cat` 命令也可以完成相同的操作! -在这种场景下,cat 命令比 touch 命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗? +在这种场景下,`cat` 命令比 `touch` 命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗? -为此,你需要使用 cat 命令,将文件名附加到 `>` 后面,如下所示: +为此,你需要使用 `cat` 命令,将文件名附加到 `>` 后面,如下所示: ``` cat > Filename @@ -85,29 +87,29 @@ cat > NewFile.txt ![Using cat command][4] -这就好了! 现在,你可以使用 ls 命令来显示[当前工作目录的内容][5]: +这就好了!现在,你可以使用 `ls` 命令来显示 [当前工作目录的内容][5]: ![use the ls command to list the contents of the current working directory][6] -#### 2. 将文件内容复制到另一个文件 +#### 2、将文件内容复制到另一个文件 -考虑一个场景,你要将 **FileA** 的文件内容重定向到 **FileB**。 +考虑一个场景,你要将 `FileA` 的文件内容重定向到 `FileB`。 当然,你可以复制和粘贴。但是如果有几百或几千行怎么办? -简单。你可以使用 cat 命令来重定向数据流。为此,你必须遵循给定的命令语法: +简单。你可以使用 `cat` 命令来重定向数据流。为此,你必须遵循给定的命令语法: ``` cat FileA > FileB ``` -> 🚧 如果使用上述语法重定向文件内容,它将删除 FileB 的文件内容,然后重定向 FileA 的文件内容。 +> 🚧 如果使用上述语法重定向文件内容,它将删除 `FileB` 的文件内容,然后重定向 `FileA` 的文件内容。 -例如,我将使用两个文本文件 FileA 和 FileB,其中包含以下内容: +例如,我将使用两个文本文件 `FileA` 和 `FileB`,其中包含以下内容: ![check the file contents using the cat command][7] -现在,如果我使用从 FileA 到 FileB 的重定向,它将删除 FileB 的数据,然后重定向 FileA 的数据: +现在,如果我使用从 `FileA` 到 `FileB` 的重定向,它将删除 `FileB` 的数据,然后重定向 `FileA` 的数据: ``` cat FileA > FileB @@ -123,9 +125,9 @@ cat FileA FileB > FileC ![redirect file content of multiple files using the cat command][9] -可以看到,上面的命令删除了FileC的数据,然后重定向了FileA和FileB的数据。 +可以看到,上面的命令删除了 `FileC` 的数据,然后重定向了 `FileA` 和 `FileB` 的数据。 -#### 将一个文件的内容附加到另一个文件 +#### 3、将一个文件的内容附加到另一个文件 有时你想要将数据附加到现有数据,在这种情况下,你必须使用 `>>` 而不是单个 `>`: @@ -145,7 +147,7 @@ cat FileA.txt FileB.txt >> FileC.txt > 💡 你可以使用 `>>` 向现有文件添加新行。使用 `cat >> filename` 并开始添加所需的文本,最后使用 `Ctrl+D` 保存更改。 -#### 4. 显示行数 +#### 4、显示行数 你可能会遇到这样的情况,你想查看行数,这可以使用 `-n` 选项来实现: @@ -157,9 +159,9 @@ cat -n File ![get the number of the lines in the cat command][11] -#### 5. 删除空行 +#### 5、删除空行 -在文本文档中留下多个空白行? cat 命令将为你修复它! +在文本文档中留下多个空白行? `cat` 命令将为你修复它! 为此,你所要做的就是使用 `-s` 标志。 @@ -169,7 +171,7 @@ cat -n File 正如你所看到的,它有效,但结果接近预期。 -那么如何删除所有空行呢? 通过管道将其传递给 grep 命令: +那么如何删除所有空行呢? 通过管道将其传递给 `grep` 命令: ``` cat File | grep -v '^$' @@ -204,22 +206,24 @@ cat Haruki.txt | grep -v '^$' > File | `cat FileA > FileB` | `FileB` 的文件内容将被 `FileA` 覆盖。| | `cat FileA >> FileB` | `FileA` 的文件内容将附加到 `FileB` 的末尾。| | `cat -n File` | 显示行数,同时省略文件的文件内容。 | -| `cat File | more` | 将 cat 命令通过管道连接到 more 命令以处理大文件。请记住,它不能让你向上滚动! | -| `cat File | less` | 将 cat 命令通过管道传输到 less 命令,这与上面类似,但它允许你双向滚动。| +| `cat File | more` | 将 `cat` 命令通过管道连接到 `more` 命令以处理大文件。请记住,它不能让你向上滚动! | +| `cat File | less` | 将 `cat` 命令通过管道传输到 `less` 命令,这与上面类似,但它允许你双向滚动。| | `cat File | grep -v '^$'` | 从文件中删除所有空行。| ### 🏋️ 练习时间 如果你学到了新东西,用不同的可能性来执行它是最好的记忆方式。 -为此,你可以使用 cat 命令进行一些简单的练习。它们将是超级基本的,就像 cat 一样是[最基本的命令之一][15]。 +为此,你可以使用 `cat` 命令进行一些简单的练习。它们将是超级基本的,就像 `cat` 一样是[最基本的命令之一][15]。 -出于练习目的,你可以[使用 GitHub 上的文本文件][16]。 +出于练习目的,你可以 [使用 GitHub 上的文本文件][16]。 -- 如何使用 cat 命令创建空文件? -- 将 cat 命令生成的输出重定向到新文件 `IF.txt` +- 如何使用 `cat` 命令创建空文件? +- 将 `cat` 命令生成的输出重定向到新文件 `IF.txt` - 能否将三个或更多文件输入重定向到一个文件? 如果是,该如何做? +*(题图:MJ/f06c9b9c-689e-4a67-abe9-0487e26bd34b)* + -------------------------------------------------------------------------------- via: https://itsfoss.com/cat-command/ @@ -227,7 +231,7 @@ via: https://itsfoss.com/cat-command/ 作者:[Sagar Sharma][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -248,4 +252,5 @@ via: https://itsfoss.com/cat-command/ [13]: https://itsfoss.com/content/images/2023/06/remove-all-the-blank-lines-in-text-files-using-the-cat-command-piped-with-grep-regular-expression.png [14]: https://itsfoss.com/content/images/2023/06/save-output-of-cat-command-by-redirection.png [15]: https://learnubuntu.com:443/top-ubuntu-commands/ -[16]: https://github.com:443/itsfoss/text-files \ No newline at end of file +[16]: https://github.com:443/itsfoss/text-files +[0]: https://img.linux.net.cn/data/attachment/album/202307/23/144250ljc3zwgjt7llznxj.jpg \ No newline at end of file