linux文本文件处理命令

发布时间:2020/11/23 作者:天马行空 阅读(1015)

1、cat 命令
cat 命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。
如果在查看文本内容时还想顺便显示行号的话,可以在cat 命令后面追加一个-n 参数。

2、more 命令
more 命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。
使用 cat 命令阅读长篇的文本内容,信息就会在屏幕上快速翻滚,导致自己还没有来得及看到,内容就已经翻篇了。因此对于长篇的文本内容,推荐使用 more 命令来查看。more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容。您还可以使用空格键或回车键向下翻页。

3、head 命令
head 命令用于查看纯文本文档的前 N 行,格式为“head [选项] [文件]”。
在阅读文本内容时,谁也难以保证会按照从头到尾的顺序往下看完整个文件。如果只想查看文本中前 10 行的内容,该怎么办呢?head 命令可以派上用场了。

[root@netljc ~]# head -n 10 package.xml 
<?xml version="1.0" encoding="ISO-8859-1"?>
<package packagerversion="1.10.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
 <name>redis</name>
 <channel>pecl.php.net</channel>
 <summary>PHP extension for interfacing with Redis</summary>
 <description>This extension provides an API for communicating with Redis servers.</description>
 <lead>
  <name>Michael Grunder</name>
  <user>mgrunder</user>
  <email>michael.grunder@gmail.com</email>


4、tail 命令
tail 命令用于查看纯文本文档的后 N 行或持续刷新内容,格式为“tail [选项] [文件]”。
有时候会遇到一种情况,比如需要查看文本内容的最后 20 行,这时就需要用到tail 命令了。tail 命令的操作方法与 head 命令非常相似,只需要执行“tail -n 20 文件名”命令就可以达到这样的效果。tail 命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时
查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名”。
注:如果使用vi编辑原来的文件,不会看到实时刷新,原因是vi会把原来的文件删除重新生成了一个同名的新文件,虽然名字是相同的,但是inode已经发生了变化。使用tail -F替代tail -f,根据man tail的说明,tail -F在文件不可以打开的时候,会重试打开该文件。

[root@netljc ~]# tail -n 10 package.xml 
    <release>2.2.3</release>
    <api>2.2.3</api>
   </version>
   <date>2013-04-29</date>
   <notes>
First release to PECL
   </notes>
  </release>
 </changelog>
</package>



5、tr 命令
tr 命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。
很多时候,我们想要快速地替换文本中的一些词汇,又或者把整个文本内容都进行替换,如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替换更是不现实。这时,就可以先使用 cat 命令读取待处理的文本,然后通过管道符把这些文本内容传递给 tr 命令进行替换操作即可。

[root@netljc ~]# cat test.txt | tr a d
ddddd
bbbbb
ccccc

[root@iz2ze9pf0xgaj16n65280pz ~]# cat test.txt | tr [a-z] [A-Z]
AAAAA
BBBBB
CCCCC


6、wc 命令
wc 命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
参数  作用
-l      只显示行数
-w    只显示单词数
-c     只显示字节数

统计系统总共有多少个用户:

[root@iz2ze9pf0xgaj16n65280pz ~]# wc -l /etc/passwd
26 /etc/passwd


7、stat 命令
stat 命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。

[root@netljc ~]# stat test.txt 
  文件:"test.txt"
  大小:5               块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:34961909    硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-11-02 10:37:52.329913719 +0800
最近更改:2020-11-02 10:37:46.744881642 +0800
最近改动:2020-11-02 10:38:28.403133977 +0800
创建时间:-


8、cut 命令
cut 命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。
在 Linux 系统中,如何准确地提取出最想要的数据,。一般而言,按基于“行”的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可。但是如果按列搜索,不仅要使用-f 参数来设置需要看的列数,还需要使用-d 参数来设置间隔符号。

提取passwd中的用户名:

[root@netljc ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@netljc ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown


9、diff 命令
diff 命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。
在使用 diff 命令时,可以使用--brief 参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处。

[root@netljc ~]# diff --brief test1.txt test2.txt 
文件 test1.txt 和 test2.txt 不同
[root@netljc ~]# diff -c test1.txt test2.txt 
*** test1.txt   2020-11-02 10:52:26.007361288 +0800
--- test2.txt   2020-11-02 10:56:37.017862383 +0800
***************
*** 1 ****
--- 1,2 ----
  aaa
+ ccc


关键字linux 常用命令