​五周第五次课(4月24日)shell特殊符号cut命令 、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下...

8.10 shell特殊符_cut命令

1、特殊符号

* 任意个字符

? 任意一个字符

# 注释字符

\ 脱义字符

| 管道符

223214_9MOf_3803395.png

2 、管道符

223307_uYVg_3803395.png

1、cut 分割
-d 分隔符 -f 指定段号 -c 指定第几个字符
举例子,见下图,

223331_QifF_3803395.png

上图例子中,| 输出结果,cut 分割出后面想要的结果。一般情况下,-c 和 -d 、-f 不同时使用。

-c 指定第几个字符

8.11 sort_wc_uniq命令

sort排序根据assic排序

sort -n 以数字排序,字母与特殊符号会认为是0   -r 反序排列  -t 分隔符  指定第几段排序

220458_Ppzt_3803395.png

wc -l  统计行数    -m 统计字符数(注意换行符 wc -A  $符号 --换行符)   -w 统计词

220446_VpjT_3803395.png

uniq 去重     -c统计重复次数

221406_KPgD_3803395.png

注:搭配sort使用 先排序在去重

8.12 tee_tr_split命令

tree和>类似,重定向的同时还在屏幕显示

tree -a 追加

222700_nMj7_3803395.png

tr命令: tr 替换字符,tr 'a' 'b',大小写替换 tr '[a-z]' '[A-Z]'
具体操作,详见下图,

223324_E9sT_3803395.png

split命令

split 切割,-b 大小(默认单位字节),-l 行数

split -b 100k a.txt

224913_WjKL_3803395.png

切割同时指定文件名前缀
 split -b 100k a.txt  abc
225027_X9xe_3803395.png

指定行数
 split -l 1000  a.txt  abc

225231_HNfo_3803395.png

8.13 shell特殊符号

225320_blTE_3803395.png

分号:会发现里面自动加上了分号 ; ,这就是多条命令之间用分号分割;

225731_HNe2_3803395.png

两条命令之间用分号分割,分号前后可以空格也可以不用空格,结果都是一样的,建议还是用空格区分一下,看起来比较直观。

 || 和 && 这两个符号,其中 || 用在 shell 当中就表示或者的意思

230303_wmSx_3803395.png

ls  a.txt||wc -l 2.txt

|| 号是或者的意思,前一条命令执行不成功的话,就执行后面的一条命令。前面的命令执行成功的话,后面的命令就不执行了。

ls  1.txt && wc -l 2.txt
反过来,如果前面的命令执行成功了,才会执行后面的命令,就用 && 号,见下图,

230411_x18p_3803395.png

实际应用例子:

 

而命令 [ -d lxylinux ] && mkdir lxylinux 的意思是,目录 lxylinux 存在的话,再去创建一个目录 lyslinux ,所以执行的结果就是无法创建目录 ”lxylinux“:文件已存在,执行的是后面的命令。接着执行命令 [ -d lxylinux ] || mkdir lxylinux ,就没有报错,意思是目录 lxylinux 存在就不执行后面的创建目录的命令。

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3803395/blog/1796481

k1++; } else if (board[i+k][j+k] == -turn || k1 == 0) { if (k1 > 0) { k2++; } k1 = 0; } if (k1 ==Bash管道(pipe)命令是将多个命令通过管道符(|)连接在一起,使得前一个 6) { value += 10000; } else if (k1 > 0 && i+k > 0 && i命令的输出成为下一个命令的输入,以此类推,形成一个流水线。下面是常+k < ROWS - 1 && j+k > 0 && j+k < COLS - 1 && board[i+k-1用的一些命令: 1. cut:用于剪切文本文件中的字段,可以按列或字符位置进行][j+k-1] == 0 && board[i+k+1][j+k+1] == 0) { value +=剪切。 示例: ``` cut -d',' -f1 file.csv # 按逗号分隔,提取第一 100; // 可以成五 } else if (k1 > 0 && i+k > 0 && i+k <列 cut -c1-5 file.txt # 提取文本文件的前5个字符 ``` 2. grep: ROWS - 1 && j+k > 0 && board[i+k-1][j+k-1] == 0) { value += 10; // 可以成四 } else if (k1 > 0 && i+k < ROWS - 用于按照指定的模式搜索文本文件中的内容,并将匹配的行输出。 示例: ``` 1 && j+k < COLS - 1 && board[i+k+1][j+k+1] == 0) { valuegrep 'pattern' file.txt # 搜索文本文件中包含pattern的行 grep -v 'pattern' file.txt # += 10; // 可以成四 } else if (k1 > 0 && i+k > 1 && j+k 搜索文本文件中不包含pattern的行 ``` 3. sort:用于对文本文件的行进行排序。 > 1 && board[i+k-1][j+k-1] == turn && board[i+k-2][j+k-2]示例: ``` sort file.txt # 按照字典序升序排序 sort -n file.txt # 按照数字 == 0) { value += 5; // 可以成三 } else if (k1 > 0 && i大小升序排序 ``` 4. wc:用于统计文本文件中的行数、单词数和字符数+k < ROWS - 2 && j+k < COLS - 2 && board[i+k+1][j+k+1] ==。 示例: ``` wc -l file.txt # 统计文本文件的行数 wc -w file.txt # turn && board[i+k+2][j+k+2] == 0) { value += 5; // 可以成三 统计文本文件的单词数 wc -c file.txt # 统计文本文件的字符数 ``` 5 } } if (k1 > 0) { k2++; } if (k2 > . uniq:用于去除文本文件中的重复行。 示例: ``` sort file.txt | uniq # 将0) { value += k2 * k2; // 连子数越多,价值越高 } k1文本文件排序并去重 ``` 6. tee:用于将命令的输出同时输出到屏幕和文件中 = 0; k2 = 0; } } // 左下到右上 for (int i =。 示例: ``` ls -l | tee file.txt # 将ls命令的输出同时输出到屏幕和文件中 5; i < ROWS; i++) { for (int j = 0; j < COLS - 5; j ``` 7. tr:用于对文本文件进行字符转换。 示例: ``` tr 'a-z' '++) { for (int k = 0; k < 6; k++) { if (board[i-k][j+k]A-Z' file.txt # 将文本文件中的小写字母转换为大写字母 ``` 8. == turn) { k1++; } else if (board[i-k][j+k] == -turn || k1 == 0) { if (k1 > 0) { k2++; } k1 = 0; } col:用于过滤文本文件中的控制字符。 示例: ``` col -b file.txt # 过滤 if (k1 == 6) { value += 10000; } else if (k1 > 0 && i-k文本文件中的控制字符 ``` 9. join:用于将两个文本文件中的相同字段进行 > 0 && i-k < ROWS - 1 && j+k > 0 && j+k < COLS - 1 && 合并。 示例: ``` join file1.txt file2.txt # 将file1.txt和file2.txt中相同的 board[i-k-1][j+k+1] == 0 && board[i-k+1][j+k-1] == 0字段合并 ``` 10. paste:用于将两个文本文件的对应行合并成一行。 示) { value += 100; // 可以成五 } else if (k1 > 0 && i-k < ROW例: ``` paste file1.txt file2.txt # 将file1.txt和file2.txt的对应行合并成一S - 1 && j+k > 0 && j+k < COLS - 1 && board[i-k+1][j+k行 ``` 11. expand:用于将文本文件中的制表符转换为空格。 示例: ``` expand file.txt # 将文本文件中的制表符转换为空格 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值