12day echo {1..100} << 三剑客命令

04. 直接编辑文件命令方法
a 如何直接在文件中添加单行内容
echo "oldboy" >>/oldboy/oldboy.txt
补充: echo命令用法说明:
01. 请在屏幕上输出 oldboyedu.com信息
02. 请在屏幕上输出 1 2 3 .... 100 的数字信息
输出序列信息
a 显示连续的序列
[root@oldboyedu ~]# echo {1..100}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
[root@oldboyedu ~]# echo {01..100}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
b 显示不连续的序列
a 不连续有规律的序列
问题:
显示1..10 的奇数信息 1 3 5 7 9
显示1..10 的偶数信息
[root@oldboyedu ~]# echo {01..10..2}
01 03 05 07 09
[root@oldboyedu ~]# echo {02..10..2}
02 04 06 08 10
b 不连续无规律的序列
mkdir -p /oldboy/oldboy01/oldboy02/{www,bbs,blog}
练习题一:
在oldboy目录下面创建出20个文件,二十个文件名称为 oldboy01,oldboy02 ..oldboy20
touch

b 如何直接在文件中添加多行内容
[root@oldboyedu ~]# cat /oldboy/oldboy.txt
hello world
oldboy shenzhen 01
oldboy shenzhen 02
[root@oldboyedu ~]# cat >> /oldboy/oldboy.txt <<EOF
> oldboy01
> oldboy02
> oldboy03
> EOF
[root@oldboyedu ~]# cat /oldboy/oldboy.txt
hello world
oldboy shenzhen 01
oldboy shenzhen 02
oldboy01
oldboy02
oldboy03
[root@oldboyedu ~]# cat >> /oldboy/oldboy.txt <<oldboy
> oldboy04
> oldboy05
> oldboy
[root@oldboyedu ~]# cat /oldboy/oldboy.txt
hello world
oldboy shenzhen 01
oldboy shenzhen 02
oldboy01
oldboy02
oldboy03
oldboy04
oldboy05

05. 过滤筛选文件内容命令
三剑客命令
老三: grep 过滤筛选信息
老二: sed 修改替换文件内容 擅长对文件中的行进行操作
老大: awk 擅长统计分析文件内容 擅长对文件中列进行操作

grep命令如何进行过滤:
编辑一个测试文件
[root@oldboyedu ~]# cat >> /oldboy/test.txt <<EOF
> oldboy01
> oldgirl01
> olddog01
> oldboy02
> oldgirl02
> olddog02
> EOF
[root@oldboyedu ~]# cat /oldboy/test.txt
oldboy01
oldgirl01
olddog01
oldboy02
oldgirl02
olddog02
需求01: 请筛选出有oldboy的信息
[root@oldboyedu ~]# grep "oldboy" /oldboy/test.txt
oldboy01
oldboy02
需求02: 筛选有oldgirl的信息,但是要有oldgirl信息的上一行信息也显示
[root@oldboyedu ~]# grep -B 1 "oldgirl" /oldboy/test.txt
oldboy01
oldgirl01
--
oldboy02
oldgirl02
需求03: 筛选有oldgirl的信息,但是要有oldgirl信息的下一行信息也显示
[root@oldboyedu ~]# grep -A 1 "oldgirl" /oldboy/test.txt
oldgirl01
olddog01
--
oldgirl02
olddog02
需求04.筛选有oldgirl的信, 但是要有oldgirl信息的下一行和下一行信息也显示
[root@oldboyedu ~]# grep -C 1 "oldgirl" /oldboy/test.txt
oldboy01
oldgirl01
olddog01
oldboy02
oldgirl02
olddog02
需求05. 统计oldgirl信息在文件中出现了几次
[root@oldboyedu ~]# grep -c "oldgirl" /oldboy/test.txt

sed命令如何进行过滤信息
[root@oldboyedu ~]# sed -n "/oldboy/p" /oldboy/test.txt
oldboy01 edu.com
oldboy02
p print 将过滤信息输出
-n 取消原文件的所有内容输出(取消默认输出)

[root@oldboyedu ~]# awk "/oldboy/" /oldboy/test.txt
oldboy01 edu.com
oldboy02

06. 修改文件部分内容信息
01. sed命令 (师傅: 真正修改文件内容)
需求: 修改test.txt文件内容 将所有oldboy信息修改替换为 python
vim 替换: :%s#oldboy#python#g
sed 's#oldboy#python#g' /oldboy/test.txt

实践操作
[root@oldboyedu ~]# sed 's#oldboy#python#g' /oldboy/test.txt
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02
[root@oldboyedu ~]# cat /oldboy/test.txt
oldboy01 edu.com
oldgirl01
olddog01
oldboy02
oldgirl02
olddog02
[root@oldboyedu ~]# sed -i 's#oldboy#python#g' /oldboy/test.txt
[root@oldboyedu ~]# cat /oldboy/test.txt
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02

02. tr命令 (徒弟: 假装修改文件内容)
需求: 修改test.txt文件内容 将所有python信息修改替换为 oldboy
[root@oldboyedu ~]# tr "python" "oldboy" </oldboy/test.txt
oldboy01 edu.com
oldgirl01
olddog01
oldboy02
oldgirl02
olddog02
[root@oldboyedu ~]# cat /oldboy/test.txt
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02

tr用法
[root@oldboyedu ~]# echo 123|tr "123" "abc"
abc
小于号用法1:
[root@oldboyedu ~]# tr "123" "abc" < /oldboy/test01.txt
abc
[root@oldboyedu ~]# cat /oldboy/test01.txt
123

posted @ 2019-12-25 19:57  差点肌肉  阅读(463)  评论(0编辑  收藏  举报