Shell 指定行处理 head、tail、sed、cat

Shell 指定行处理 head、tail、sed

Head

head 前几行:用于显示文件开头部分的内容,从头开始显示,默认情况下显示前10行
基本语法
head filename 查看文件的前10行内容
head -n x filename 查看文件的前x行 / head -n +x filename 查看文件从头开始到第十行
head -n -10 file.txt 从头开始,一直显示到倒数第十行之前
注意:其中n可以直接写成数字

#!/bin/sh
filename=“D:/personal/TEST/shell/Log.txt”
#用于显示文件开头部分的内容,从头开始显示,默认情况下显示前10行
#head filename 查看文件的前10行内容
head -n 10 $filename #查看文件的前x行 / head -n +x filename 查看文件从头开始到第十行
head -n -10 $filename #从头开始,一直显示到倒数第十行之前
head -5 10 $filename #查看文件5到10行间的内容

tail

说明:用于显示文件结尾的内容,从尾开始显示,默认情况下显示后10行
基本语法
tail 文件 查看文件后10行
tail -n x 文件 查看文件后x行内容
tail -n +x 文件 从开头的第x行开始显示到结尾
tail -f 文件 实时追踪该文件的所有更新。 常用
注意:其中n可以直接写成数字,可以接受管道指令

#!/bin/sh
filename=“D:/personal/TEST/shell/Log.txt”
#用于显示文件结尾的内容,从尾开始显示,默认情况下显示后10行
#tail $filename 查看文件后10行
#tail -n x $filename 查看文件后x行内容
#tail -n +x $filename 从开头的第x行开始显示到结尾
#tail -f $filename 实时追踪该文件的所有更新。
tail -n 8 $filename #查看文件后x行内容

Sed

sed命令常用到的两个选项:
-i : 直接在文件上编辑 (edit files in place)
-e[默认选项]:只在命令行输出,而文件不改变(add the script to the commands to be executed)
注:使用sed命令可以使用 -i 或者 -e 选项(以下例子仅以-i举例)
a add追加 向匹配行后面插入内容
c change更改 更改匹配行的内容
i ins插入 向匹配的行前插入内容
d delet删除 删除匹配的内容
s 替换掉匹配的内容
p 打印 打印出匹配的内容,常与-n选项连用
n 读取下一行,遇到n回自动跳入下一行
= 用来打印被匹配的行的行号
r,w 读写命令,r用于将内容读入文件,w用于将匹配的内容写入到文档

#!/bin/sh
filename=“D:/personal/TEST/shell/Log.txt”
sed ‘2d’ $filename #只在命令行输出,而文件不改变。命令行输出得内容没有第二行
sed -i ‘2d’ KaTeX parse error: Expected 'EOF', got '#' at position 15: filename #̲直接在文件上编辑,将第二行删除…d’ KaTeX parse error: Expected 'EOF', got '#' at position 15: filename #̲删除第4行到最后一行,用表示最后一行
sed ‘1~2d’ $filename #从第一行开始删除,每隔2行删除一行,删除奇数行
sed ‘1,3{/123/d}’ $filename #删除1-3行中,匹配内容123的行,1,3表示匹配1-3行,{/123/d}表示删除匹配123的行
sed ‘/101-19/ahello’ KaTeX parse error: Expected 'EOF', got '#' at position 10: filename #̲再包含101-19的行之后插入…filename # 查看某行,查看并打印出来
sed ‘2,3c ahello’ $filename # 把第2,3行替换成ahello
#sed ‘s/要被替换的字符/新的字符/g’ g 表示每一行的所有都替换了,默认只替换每行的第一个

cat

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

#!/bin/sh
filename=“D:/personal/TEST/shell/Log.txt”
cat -n $filename > 2.txt #把 textfile1 的文档内容加上行号后输入 text 这个文档里
cat -b textfile1 textfile2 >> textfile3 #把textfile1和textfile2 的文档内容加上行号(空白行不加)之后将内容附加到textfile3文档
cat /dev/null > $filename #清空 filename 文档内容
cat /dev/fd0 > OUTFILE #插入软盘,制作镜像
cat IMG_FILE > /dev/fd0 #将image file 写到软盘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值