您的位置:首页 > 其它

day5命令-初识三剑客

2018-07-16 11:02 232 查看
上周五学习的课程 周六周日半学半玩 也没弄

下午要讲新课了 说一下上周五学的

移动 mv

把/data 移动到 /root目录下面
mv /data/ /root/ 移动之后以后源文件不存在

mv 修改文件名 重命名

mv oldboy.txt oldgirl.txt 把oldboy.txt 修改为 oldgirl.txt

备份文件 cp

cp 进入要改文件的目录
cp oldboy.txt oldboy.txt.bak

删除目录 rm

rm -rf /data
-f 强制删除 -r递归删除
最好把-rf 放在最后 以免误删
rm /data -rf

find 命令
查找出 root 中 名字是 oldboy.txt的文件

find /root -type f -name "oldboy.txt"
查找 root 格式 普通文件 名字为 xxxxxx

查找出root下 所有结尾为 .txt 的文件 并详细显示出来
[b]find /root -type f -name "*.txt" |xargs ls -l [/b]

[b]find 接管道的时候 后面要加xargs |xargs 固定格式[/b]

cd
cd.. 进入上一级目录
cd. 进入当前目录

grep 过滤

先创建环境

mkdir -p /data
cat >/data/test.txt<<EOF
test
liyao
oldboy
EOF
请给出输出test.txt文件内容时,不包含oldboy字符串的命令。

方法1
grep -v "oldboy" /data/test.txt

-v参数 反选

方法2

[root@oldboyedu50 data]# head -n2 /data/test.txt
test
liyao
[root@oldboyedu50 data]# head -2 /data/test.txt
test
liyao

#head 显示文件的前几行内容 默认显示前10行
#tail 显示文件的最后几行内容 默认显示最后10行

#显示文件最后一行
[root@oldboyedu50 data]# tail -1 /data/test.txt
oldboy

-n几 显示几行 也可以省略n 直接 -几

方法3 awk


[root@oldboyedu50 data]# awk '/oldboy/' /data/test.txt 取带有 oldboy 的行
oldboy
[root@oldboyedu50 data]# awk '!/oldboy/' /data/test.txt 不显示[b]带有 oldboy 的行 !反选 [/b]
test
liyao

方法4 sed

[root@oldboyedu50 data]# sed '/oldboy/d' /data/test.txt 取不带有oldboy的行 加d 反选
test
liyao

sed 加d 反选 跟grep -v awk加! 一个性质

请用一条命令创建目录 /oldboy/test
mkdir -p /oldboy/test
-p 创建多层目录

只查看ett.txt文件(共100行)内第20到第30行的内容

[root@oldboyedu50 data]# seq 10 显示1-10行
1
2
3
4
5
6
7
8
9
10


seq 40 >/data/ett.txt 显示40行 追加到文件中

#方法1 head + tail

[root@oldboyedu50 data]# head -30 /data/ett.txt |tail -11 [b]先取头30行 然后取后11行 head或tail不加-几时 默认前十或后十行[/b]
20
21
22
23
24
25
26
27
28
29
30

#显示文件的第30到40行

head -40 /data/ett.txt |tail -11
tail -11 /data/ett.txt


#方法2 sed 取行
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#-n 取消默认输出(sed命令不会把文件内容都显示出来)
[root@oldboyedu50 data]# sed -n '3p' /data/ett.txt
3
#print
[root@oldboyedu50 data]# sed -n '20p' /data/ett.txt
20
[root@oldboyedu50 data]# sed -n '20,30p' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30


#方法3 awk
[root@oldboyedu50 data]# awk 'NR==3' /data/ett.txt
3
[root@oldboyedu50 data]# # 'NR行号 等于 3'
[root@oldboyedu50 data]# awk 'NR==20,NR==30' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30

周五主要讲了 三剑客如何取行 和一些参数 简单总结一下
awk
awk '!/xxxx/' /data
! 反选
'NR==10' 取行

sed
sed 加d 反选
-n 取消默认输出
3p 取第三行

grep
grep -v 反选

head 默认显示前十行
tail 默认显示后十行












内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  day5 命令 初识