cat命令

2023-11-09

Linux cat命令的使用

cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。
 
A:查看文件内容主要用法:
1、cat f1.txt,查看f1.txt文件的内容。
2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
5、cat -e f1.txt,在输出内容的每一行后面加一个$符号。
6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
8、cat -n f1.txt>>f2.txt,对f1.txt文件中每一行加上行号后然后追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
 
B:创建文件以及写入文件内容的用法:
注意:创建文件的时候要设置文件结束标志,也就是<<EOF,可以把EOF换成别的字符,注意是大小写敏感的,当文件内容写完之后要输入结束标志EOF,这时命令会正确结束,表示成功创建文件并且写进内容。
 
 
 C:追加文件内容的用法:
注意:与创建文件内容不同的是符号单边号>变成了双边号>>。
 
D:文件合并的用法
把文件f2.txt,f3.txt,f4.txt的文件内容写入到f1.txt中,如果f1.txt文件以前有内容,则先会清除它们然后再写入合并后的内容。
如果不想清除文件内容,则可以把单边号>变成了双边号>>,如下图所示:
 
附:
cat命令的全称:
concatenate files and print on the standard output


cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat   filename
2.从键盘创建一个文件。
$ cat  >  filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat   file1   file2  > file
cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
范例:
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
范例:
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用?
EOF是“end of file”,表示文本结束符。
<<EOF
(内容)
EOF


首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。


接下来,简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有'>'的。
3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样:


二、使用
看例子是最快的熟悉方法:
# cat << EOF > test.sh
> #!/bin/bash             #“shell脚本”
> #you Shell script writes here.
> EOF

结果:
引用# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的内容就是cat生成的内容。
cat <<EOF >test.sh  内容 EOF  
---就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他符号比如EEE:cat <<EEE  >test.sh  内容 EEE 

三、其他写法
1、追加文件
# cat << EOF >> test.sh  内容  EOF
---将内容追加到 test.sh 的后面,不会覆盖掉原有的内容
2、换一种写法
# cat > test.sh << EOF 内容  EOF
3、EOF只是标识,不是固定的
# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH
这里的“HHH”就代替了“EOF”的功能。结果是相同的。
引用# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj

4、非脚本中
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识
# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D

结果:
引用# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk

※关于“>”、“>>”、“<”、“<<”等的意思,请自行查看bash的介绍。


cat本身表示connection(拼接)

 

示例

显示文件内容(大文件更适合用head or tail)

$ cat file

 

将文件a和文件b的内容拼接在一块输出

$ cat file_a file_b

 

将标准输入与文件内容拼接在一起

$ echo "text through stdin" | cat - a

text through stdin
abc
$ echo "text through stdin" |cat a

abc

 

将文件a内容appen到旧文件b中

$ cat a >> b

注:> 为覆盖  >> 为追加

 

将文件a,b,c合并成新文件d

$ cat a b c >> d

 

显示文件内容并带行号

$cat -n file

     1    efg
     2    abc
     3    abc

清空文件

$ cat /dev/null > file


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cat命令 的相关文章

  • unixODBC (DB2) + PHP + CentOS 的段错误

    经过两天的战斗 我尝试在这里寻求帮助 我正在使用 unixODBC 2 2 11 在 CentOS 5 4 服务器上使用 DB2 iSeries 和 PHP 5 3 我猜是因为 PHP 从 5 1 升级到 5 3 我让 PHP 在某些查询上
  • Git 使用绝对路径忽略目录

    gitignore 中可以使用绝对目录路径吗 我将以下内容放入 var www bidjunction gitignore 中 但是 html 仍然被跟踪 为什么还被追踪 var www bidjunction html 编辑 有点偏离主题
  • 通过 os.system 推送 [重复]

    这个问题在这里已经有答案了 我正在使用 crontab 为我的 Minecraft 服务器运行维护脚本 大多数时候它工作正常 除非 crontab 尝试使用重新启动脚本 如果我手动运行重新启动脚本 则不会有任何问题 因为我相信它与路径名有关
  • 与 crond 不同的 ssh 行为

    我已经在这件事上抓狂了好几个小时了 我欢迎任何有关下一步发展的新想法 目标是通过 SSH 登录到自定义应用程序 CLI 然后使用自定义 CLI 命令之一在远端设备上下拉调试 shell 在客户端 我使用 CentOS mini 并运行 ss
  • shell_exec 不在后台运行,还有其他解决方案吗?

    我在 CentOS 上的 apache 中使用 php 我需要为用户提供服务 他们可以通过点击删除大文件 尝试使用 shell exec 但它不在后台运行 它运行并让用户等待 我的命令 D command rm rf 视频 Mdelete
  • nfsnobody 用户权限

    我已经在两台 CentOS 6 64 机器之间设置了 NFS 文件共享 在服务器上 共享的文件夹最初由 root 用户拥有 在客户端上 它显示为 nfsnobody 所有 当我尝试从客户端写入该文件夹时 出现权限错误 因此 我将服务器上的文
  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 如何在 CentOS 中向 PHP 5 添加curl 支持

    如何在 CentOS 中向 PHP 5 添加curl 支持 安装curl和curl devel后 我需要做哪些事情才能在PHP 5中设置curl 有同样的问题 安装 php common 对我有用 yum install php commo
  • 无法在 CentOS 7 上启动 postgresql 服务

    无法在 CentOS 7 上启动 postgresql 9 5 我关注了这个页面 https wiki postgresql org wiki YUM Installation https wiki postgresql org wiki
  • 在centos 6.4上安装numpy&scipy

    我在虚拟环境中工作 安装 numpy 和 scipy 时遇到问题 据我了解 在使用 scipy 之前我必须完全安装 numpy 但是我在安装 numpy 时遇到了问题 I usedpip install numpy并将 numpy 安装到我
  • 在 CentOs 上使用 CURL 和 TOR 作为代理

    我想使用 Tor 作为 HTTP 请求的代理curl or wget on a CentOS机器 我使用了这个 How to 并在 stackexchange 和 stackoverflow 上寻找了一些答案 https medium co
  • 如何在 CentOs 中安装 php-xml

    我正在尝试在 CentOs 6 5 上安装 php xml 我输入命令yum install php xml 我收到此错误 Loaded plugins fastestmirror Loading mirror speeds from ca
  • 如何找出apache上次重启的时间? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 VPSkloxo控制面板已安装 我在用CentOS 5 8 32 bit 我今天重新启动了 Apache 但忘记了启动时间 知道确切的时间非
  • 在perl中串行处理XML数据

    我想知道在我的情况下 哪种 XML 解析器最适合 Perl 我读了很多书并尝试过XML LibXML and XML SAX 第一个使用了太多内存 第二个对我来说似乎没有那么快 即使在关闭纯 Perl 解析器之后 我的需求相当具体 我通过以
  • 无法使用 git 克隆任何存储库

    我尝试克隆一些存储库 但总是遇到相同的错误 我在哪里可以找到有关此错误的更多信息 错误日志文件或类似的文件 或者也许有人知道可能出了什么问题 git clone http github com creationix nvm git nvm
  • mod_mono 在新安装的 centos 上出现 EOF 错误

    我全新安装了 Centos 6 3 已完全更新 我已经从源安装了 mono xsp 和 mod mono 每个包都完美编译 它们都以 usr local mono 前缀安装 因此所有内容都位于 usr local mono 下 我已将 In
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • 缺少单独的调试信息,请使用: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686

    CentOS 6 2 GNU gdb GDB 红帽企业 Linux 7 2 50 el6 当我使用 GDB 调试简单的 C 代码时 我看到以下警告 Missing separate debuginfos use debuginfo inst
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • Reactive判断的API,toRef & toRefs,ref其他的API,customRef

    Reactive判断的API isProxy 检查对象是否是由 reactive 或 readonly创建的 proxy isReactive 检查对象是否是由 reactive创建的响应式代理 如果该代理是 readonly 建的 但包裹
  • 基于Arduino Uno的智能小车(可遥控,避障,调速)模块:L298N HC-05 HC-SR04及sg90(180度)舵机

    文章目录 一 先让小车动起来 二 加入对应模块实现对应功能 1 HC SR04及SG90舵机 2 完整程序编写 总结 一 先让小车动起来 1 用到的函数 定义引脚的输入 输出函数 pinMode pin OUT INPUT 通过使用pinM
  • jupyter 设置主题Error:Could not find a version that satisfies the requirement jupyterthemes from version

    1 jupyter设置主题的步骤 命令窗口输入 pip install jupyterthemes 具体主题讲解可参考 https www cnblogs com shanger p 12006161 html 2 遇到的问题 Could
  • QT的Tree View Model示例

    一 介绍 使用MVC架构 Tree View与Tree Widget 相比而言 需要为tree view 设置一个model 使Tree View 能有效降低内存的使用率 下面参考Qt官方提供的demo Simple Tree Model
  • SSM框架controller类正常部分页面跳转404

    一 问题 在做项目的时候 将写好的页面整合到SSM框架过程中 写好controller类 将相关页面调整过后 启动Tomcat 进入系统进行测试页面跳转问题 发现一部分页面跳转成功 一部分页面跳转失败 且跳转失败的页面是同一个目录下的 二
  • blender怎么移动骨骼_Blender

    1 打开blender可以通过 shift a 调出创建菜单 2 通过 rgs 这三个按键 可以分别对模型进行旋转移动缩放 3 shift d 可以实现复制功能 4 使用 z 键可以切换到线框模式 再按一次切换回来 5 tab 按键可以切换
  • 完全小白的pycharm深度学习调试+for循环断点条件设置

    完全小白的pycharm深度学习调试 for循环断点条件设置 写在最前面 基础方法 pycharm断点调试 控制台输入 代码中循环的debug方法 pycharm中图标的介绍 常见的Bug Debug经验 1 检查激活函数的输入值 2 检查
  • Hive往表写入数据的八种方法

    1 使用insert select 语法 insert overwrite table dest table partition dt xxxxxx selectc1 c2from src tablewhere 复制代码 select中的字
  • EC11编码器和单片机通信

    EC11编码器 EC11编码器通常又被称作为旋转编码器 一般主要是用于亮度 温度 频率 音量调节等参数控制 三只脚中的C脚接地 AB脚接上拉电阻后 当左转或右转时 AB脚就有脉冲信号输出 S1和S2脚为按压开关 按下时导通 旋转编码器的引脚
  • ARM汇编学习三

    有时 一次性加载 或存储 多个值更有效率 因此 我们需要使用LDM 载入多个值 和STM 存储多个值 这些指令基于起始地址的不同 有不同的形式 下面是我们将在本节中将会使用的代码 我们将一步一步地完成每一个指令 代码在test5 s中 da
  • [HNCTF 2022 WEEK2]ez_ssrf

    HNCTF 2022 WEEK2 ez ssrf
  • Windows下使用Linux命令 - GNUWin32 安装

    https sourceforge net projects getgnuwin32 source typ redirect 下载 GetGnuWin32 0 6 3 exe https sourceforge net projects g
  • BFD协议简介

    1 背景 双向转发检测BFD Bidirectional Forwarding Detection 是一种全网统一的检测机制 用于快速检测 监控网络中链路或者IP路由的转发连通状况 为了保护关键应用 网络中会设计有一定的冗余备份链路 网络发
  • 二叉树刷题

    二叉树 题目1 94 二叉树中的最大路径和 LintCode class Solution public 求出从根到任意位置的最大长度 int dfs TreeNode root int maxsum if root NULL return
  • Python面向对象详解(4-2)

    目录 一 类中的参数self 二 Python中self的解析与总结 1 self是什么 python中self代表类的实例 2 Python中只有针对类来说self才有意义 3 self只能用在python类的方法中 4 举例说明 三 类
  • 第十届蓝桥杯国赛 G排列数(动态规划精简题解+图解)

    动态规划 集合 f i j f i j f i j 表示填了前
  • 在socket编程中,如何获取连接另一端(客户端)的ip地址,使用accept或者getpeername

    这段代码没有实际的功能 只是为了获取连接另一端的ip地址 include
  • 因果推断----必要因和充分因

    必要因 或 若非因 和充分因 必要因 已知张三堵住消防通道 X 1 并且李四死了 Y 1 假如X为0 那么李四还活着 Y 0 的概率是多少 必要性概率 P N PN PN为 P
  • (c语言)PAT 乙级 1010 一元多项式求导 (25分)

    设计函数求一元多项式的导数 注 x的n次方 n为整数 的一阶导数为n乘x的n 1次方 输入格式 以指数递降方式输入多项式非零项系数和指数 绝对值均为不超过 1000 的整数 数字间以空格分隔 输出格式 以与输入相同的格式输出导数多项式非零项
  • cat命令

    Linux cat命令的使用 cat命令主要用来查看文件内容 创建文件 文件合并 追加文件内容等功能 A 查看文件内容主要用法 1 cat f1 txt 查看f1 txt文件的内容 2 cat n f1 txt 查看f1 txt文件的内容