linux u6 cat/ nl/ od/ more/ head/ cp/ mv/ rm/ wc/ diff/uniq

查看文本文件内容

p139
cat

  • cat 显示一个或者多个文件的内容
  • 语法:cat [opinion] [文件名]
    -E 在每一行末尾显示$
    -n 显示每一行的行号
  • cat /etc/os-release或者cat /proc/version来查看版本信息
s19@GOJ:~$ cat -n /tmp/donors
     1  Mike Harrington:(510) 548-1278:250:100:175
     2  Christian Dobbins:(408) 538-2358:155:90:201
     3  Susan Dalsass:(206) 654-6279:250:60:50
     4  Archie McNichol:(206) 548-1348:250:100:175
     5  Jody Savage:(206) 548-1278:15:188:150
     6  Guy Quigley:(916) 343-6410:250:100:175
     7  Dan Savage:(406) 298-7744:450:300:275
     8  Nancy McNeil:(206) 548-1278:250:80:75
     9  John Goldenrod:(916) 348-4278:250:100:175
    10  Chet Main:(510) 548-5258:50:95:135
    11  Tom Savage:(408) 926-3456:250:168:200
    12  Elizabeth Stachelin:(916) 440-1763:175:75:300
    
s19@GOJ:~$ cat -E /tmp/donors
Mike Harrington:(510) 548-1278:250:100:175$
Christian Dobbins:(408) 538-2358:155:90:201$
Susan Dalsass:(206) 654-6279:250:60:50$
Archie McNichol:(206) 548-1348:250:100:175$
Jody Savage:(206) 548-1278:15:188:150$
Guy Quigley:(916) 343-6410:250:100:175$
Dan Savage:(406) 298-7744:450:300:275$
Nancy McNeil:(206) 548-1278:250:80:75$
John Goldenrod:(916) 348-4278:250:100:175$
Chet Main:(510) 548-5258:50:95:135$
Tom Savage:(408) 926-3456:250:168:200$
Elizabeth Stachelin:(916) 440-1763:175:75:300$

  • 如果cat两个文件。在显示第一个以后会继续cat下一个文件
  • cat *表示显示当前目录下的所有文件的内容,使用cirl+D终止

nl

  • nl在显示文件内容的时候显示行号,相当于cat -n
s19@GOJ:~$ nl  /tmp/donors
     1  Mike Harrington:(510) 548-1278:250:100:175
     2  Christian Dobbins:(408) 538-2358:155:90:201
     3  Susan Dalsass:(206) 654-6279:250:60:50
     4  Archie McNichol:(206) 548-1348:250:100:175
     5  Jody Savage:(206) 548-1278:15:188:150
     6  Guy Quigley:(916) 343-6410:250:100:175
     7  Dan Savage:(406) 298-7744:450:300:275
     8  Nancy McNeil:(206) 548-1278:250:80:75
     9  John Goldenrod:(916) 348-4278:250:100:175
    10  Chet Main:(510) 548-5258:50:95:135
    11  Tom Savage:(408) 926-3456:250:168:200
    12  Elizabeth Stachelin:(916) 440-1763:175:75:300

od

  • od 读取文件内容,并将其内容用八进制呈现出来
  • od -c 使用ASCII码的进行输出,包括转义字符
    下图显示其中一部分
0000620 066557 051440 073141 063541 035145 032050 034060 020051
0000640 031071 026466 032063 033065 031072 030065 030472 034066
0000660 031072 030060 042412 064554 060572 062542 064164 051440
0000700 060564 064143 066145 067151 024072 030471 024466 032040
0000720 030064 030455 033067 035063 033461 035065 032467 031472
0000740 030060 000012
0000743
s19@GOJ:~$ od -c /tmp/donors
0000000   M   i   k   e       H   a   r   r   i   n   g   t   o   n   :
0000020   (   5   1   0   )       5   4   8   -   1   2   7   8   :   2
0000040   5   0   :   1   0   0   :   1   7   5  \n   C   h   r   i   s
0000060   t   i   a   n       D   o   b   b   i   n   s   :   (   4   0

每次一页查看文件
more less

  • more 每次一页,不允许向前翻滚
    +N 从第N行开始显示文件内容
    -nN 每页/页显示N行

  • less 允许在文件中一行或是多行前后滚动,在显示文件的时候并不读入整个文件,可以输入/查找

查看文件的头尾

  • head 默认显示10行
    head -n 显示开始的n行
s19@GOJ:~$ head -3  /tmp/donors
Mike Harrington:(510) 548-1278:250:100:175
Christian Dobbins:(408) 538-2358:155:90:201
Susan Dalsass:(206) 654-6279:250:60:50

  • tail 显示一个或多个文件的尾部,默认显示10行
  • tail -f 显示完文件的最后一行后,如果文件正在被追加,会继续显示追加的行,直到cirl+c,表示实时查看
  • +n 表示显示从第n行开始的所有行;-n表示显示文件的最后n行
  • -r 逆序显示(-)
s19@GOJ:~$ tail -3  /tmp/donors
Chet Main:(510) 548-5258:50:95:135
Tom Savage:(408) 926-3456:250:168:200
Elizabeth Stachelin:(916) 440-1763:175:75:300

##文件的复制、转移和删除

文件的复制

  • 格式:cp [o] [目录或文件] [目标目录],可以复制多个目录,且文件名可以修改
  • -i 如果目的文件存在,会在覆盖前提示,如果没有存在,则和不加一样
  • -p 保留文件的权限属性和修改时间
  • -r 递归复制文件和子目录
  • 必须具有file1 的读权限和file1 和file2 的目录执行权限。如果file2不存在,则需要file2所在目录的写权限。如果file2存在,需要file2的写许可。

文件的转移

  • mv [o] [原文件或目录] [目标目录]剪切和改名,可以多个目录剪切或改名
  • -f 强制转移,忽略目的文件的权限
  • -i 在覆盖之前提示用户
  • 包含源文件的目录写许可和执行权限,但不必有该文件本身的读、写和执行权限。目的文件所在目录的执行和写权限,所在路径上每一个目录的执行权限。如果目标目录存在,需要他的写权限。

文件的删除

  • rm [o] [文件或目录]
  • -f 强制删除,不会有询问
  • -i 删除前给提示
  • -r 递归删除,用于删除目录
  • 该路径上所有目录的执行权限以及文件所在目录的写和执行权限。

文件大小确定

  • ls -l
  • wc [o] [文件名] 用来显示文件大小
  • -c 只显示字符数
  • -l 只显示行数
  • -w只显示单词数
  • 先显示行数,再显示字数,再显示字符character。
  • wc -l /etc/password计数注册了多少个账号。
s19@GOJ:~$ nl /tmp/donors
     1  Mike Harrington:(510) 548-1278:250:100:175
     2  Christian Dobbins:(408) 538-2358:155:90:201
     3  Susan Dalsass:(206) 654-6279:250:60:50
     4  Archie McNichol:(206) 548-1348:250:100:175
     5  Jody Savage:(206) 548-1278:15:188:150
     6  Guy Quigley:(916) 343-6410:250:100:175
     7  Dan Savage:(406) 298-7744:450:300:275
     8  Nancy McNeil:(206) 548-1278:250:80:75
     9  John Goldenrod:(916) 348-4278:250:100:175
    10  Chet Main:(510) 548-5258:50:95:135
    11  Tom Savage:(408) 926-3456:250:168:200
    12  Elizabeth Stachelin:(916) 440-1763:175:75:300
s19@GOJ:~$ wc /tmp/donors
 12  36 483 /tmp/donors
s19@GOJ:~$ wc -c /tmp/donors
483 /tmp/donors
s19@GOJ:~$ wc -l /tmp/donors
12 /tmp/donors
s19@GOJ:~$ wc -w /tmp/donors
36 /tmp/donors

文件的比较

  • diff [o] file1 file2 主体是file1,对于file1来说file2干了什么
  • file1 和file2都可以是目录,就在目录下面寻找
  • a增加 c 替换 d 删除
s19@GOJ:~$ cp lab1 lab5
s19@GOJ:~$ diff lab1 lab5
s19@GOJ:~$ cat lab5
zq
s19@GOJ:~$ vi lab5
s19@GOJ:~$ diff lab1 lab5
1a2
> yyds   
 #表示lab5在lab1的第一行的基础上加了第二行内容为yyds

s193213@GOJ:~$ diff lab1 lab5
1a2,3
> yyds
> 8887
#表示表示lab5在lab1的第一行的基础上加了第二、三行内容为yyds和8887

s19@GOJ:~$ diff lab1 lab5
1c1,3
< z
---
> zq
> yyds
> 8887
#将lab1中的第一行替换成lab5中123行,c表示替换

s19@GOJ:~$ diff lab1 lab5
1c1
< zq
---
> z
3d2
< 8887
#删除lab1文件中的8887

删除重复行

  • uniq [o] [+N] [input-file] [output-file] 删除已经排序好的文件input-file中的所有重复行,然后把其输出到output-file中,本身不变。
  • uniq 显示内容出现一次,没有重复
  • -c 在每行之前显示出现次数
  • -d 显示重复行
  • -u 显示未重复的行
#所有内容出现一次
s19@GOJ:~$ uniq a
jonh    Doe     ECE     3.54
Pam     Meyer   CS      3.61
Jim     DAVIS   CS      12.71
Jason   Kim     ECE     3.97
Amy     Nash    ECE     2.38
#显示出现次数
s19@GOJ:~$ uniq -c a
      1 jonh    Doe     ECE     3.54
      1 Pam     Meyer   CS      3.61
      1 Jim     DAVIS   CS      12.71
      1 Jason   Kim     ECE     3.97
      2 Amy     Nash    ECE     2.38
      1
#显示重复行
s19@GOJ:~$ uniq -d a
Amy     Nash    ECE     2.38
#显示非重复行
s19@GOJ:~$ uniq -u a
jonh    Doe     ECE     3.54
Pam     Meyer   CS      3.61
Jim     DAVIS   CS      12.71
Jason   Kim     ECE     3.97


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值