关于shell-----2
来源:互联网 发布:小米手环2清除数据 编辑:程序博客网 时间:2024/06/10 17:16
xargs 可以把stdin接收到的数据重新格式化,再将去作为参数提供给其他命令
例如: cat file.txt #样例文件
1 2 3 4 5 6
7 8 9 10
11 12
cat file.txt | xargs
1 2 3 4 5 6 7 8 9 10 11 12
cat file.txt |xargs -n 3
1 2 3
4 5 6
7 8 9
10 11 12
1 2 3 4 5 6
7 8 9 10
11 12
cat file.txt | xargs
1 2 3 4 5 6 7 8 9 10 11 12
cat file.txt |xargs -n 3
1 2 3
4 5 6
7 8 9
10 11 12
echo "splitXsplitXsplitXsplit" |xargs -d X
输出的结果: split split split split
-d 选项为输入指定一个定界符:简单说就是忽略X
输出的结果: split split split split
-d 选项为输入指定一个定界符:简单说就是忽略X
cat args.txt | xargs -I {} ./cecho.sh -p {} -l |cecho.sh里面的内容为:
输出的结果为: -p arg1 -l | arg1
-p arg2 -l | arg2
-p arg3 -l | arg3
find . -type f -name "*.c" -print0 |xargs -0 rm -f 利用find寻找出所有c文件,忽略了带空格的文件名,并且删除掉
find . -type f -name "*.c" -print0 |xargs -0 wc -l 利用find寻找出所有c文件,忽略了带有空格的文件名,并且统计了行数
cat files.txt | (while read arg; do cat $arg; done)等同于
cat files.txt | xargs -I {} cat {}
cat files.txt | xargs -I {} cat {}
用tr进行转换
echo "HELL WORLD" |tr 'a-z' 'A-Z' 小写转换为大写
用tr进行删除
echo "hello 789 world 456" |tr -d '0-9'
用tr进行补集
--------------------------------------------
|-------------------------------------------------------------------------------------------------------------------------|
用tr来省略文本中的空格:cat filesname.txt |tr -s
对某个文件里面的数据进行求和:cat filesname.txt | echo $[ $(tr '\n' '+')0]
运算的结果为15 后面的0是为了省略多出来的运算符
cat filesname.txt |tr -s '\n'
输出的结果为:123456
echo "HELL WORLD" |tr 'a-z' 'A-Z' 小写转换为大写
用tr进行删除
echo "hello 789 world 456" |tr -d '0-9'
用tr进行补集
--------------------------------------------
|-------------------------------------------------------------------------------------------------------------------------|
用tr来省略文本中的空格:cat filesname.txt |tr -s
对某个文件里面的数据进行求和:cat filesname.txt | echo $[ $(tr '\n' '+')0]
运算的结果为15 后面的0是为了省略多出来的运算符
cat filesname.txt |tr -s '\n'
输出的结果为:123456
filesname.txt里面的数据为 : 1
2
3
4
5
6
tr的字符类:alnum:字母和数字
alpha:字母
cntrl:控制(非打印)
digit:数字
graph:图形字符
lower:小心字母
print:可打印字符
punct:标点符号
space:空白字符
upper:大写字母
xdigit:十六进制字符
可以按照下面的方式选择并使用所需的字符串:
tr [:class:] [:class:]
例如:
tr '[:lower:]' '[:upper:]'
alpha:字母
cntrl:控制(非打印)
digit:数字
graph:图形字符
lower:小心字母
print:可打印字符
punct:标点符号
space:空白字符
upper:大写字母
xdigit:十六进制字符
可以按照下面的方式选择并使用所需的字符串:
tr [:class:] [:class:]
例如:
tr '[:lower:]' '[:upper:]'
排序、唯一和重复
sort命令既可以从特定的文件,也可以从stdin中获取输入,并将输出写入stdout。uniq的工作方式和sort一样
sort file1.txt file2.txt >sorted.txt 或者是sort file1.txt file2.txt -o sorted.txt -------这两条命令都可以对file1和file2进行排序
sort -n file.txt ------按照顺序进行排序
sort -r file.txt ------按照逆序进行排序
sort -M file.txt ------按照月份进行排序
sort -m file1.txt file2.txt -----------合并两个已经排序过的文件
sort file1.txt file2.txt |uniq ---------寻找已排序文件中不重复的行
sort -C file.txt ------检查是否已经排序过了
sort关于其他的参数: -k :指定了排序应该按照哪一个键(key)来进行,键指的是列好
-b :该选项是用于忽略文件中的前导空白行
-d :用于指明以字典序进行排序
uniq:主要是用来消除重复内容例如:
uniq sorted.txt 或者是sort sorted.txt | uniq 或者是cat sorted.txt | uniq
如果只显示唯一的行(在输入文件中没有重复出现的行)例如:
uniq -u sorted.txt 或者是sort sorted.txt|uniq -u 或者是cat sorted.txt |uniq -u
如果是要统计各行在文件中出现的次数 例如:
uniq -c sorted.txt 或者是sort sorted.txt|uniq -c 或者是cat sorted.txt |uniq -c
如果是要找出重复的行 例如:
uniq -d sorted.txt 或者是sort sorted.txt|uniq -d 或者是cat sorted.txt |uniq -d
同时我们也可以指定键:-s ,-w -s:指定可以跳过前n个字符 -w:指定用于比较的最大字符数
创建临时文件、目录、或着文件名 创建临时文件、目录、或着文件名的作用是,编写shell脚本的时候我们经常要储存一些临时数据,最适合的储存点是/tmp,但是重启会清空所以
例如:创建临时文件:filename=`mktemp`
创建临时目录:dirname=`mktemp -d`
创建文件名,但是不创建实际的文件或目录: tmpfile=`mktmp -u`
根据模板创建临时文件:mktemp test.xxx 注意:要想正常工作必须保证有三个x,x会被随机的字符(字母或者数字)替换
-b :该选项是用于忽略文件中的前导空白行
-d :用于指明以字典序进行排序
uniq:主要是用来消除重复内容例如:
uniq sorted.txt 或者是sort sorted.txt | uniq 或者是cat sorted.txt | uniq
如果只显示唯一的行(在输入文件中没有重复出现的行)例如:
uniq -u sorted.txt 或者是sort sorted.txt|uniq -u 或者是cat sorted.txt |uniq -u
如果是要统计各行在文件中出现的次数 例如:
uniq -c sorted.txt 或者是sort sorted.txt|uniq -c 或者是cat sorted.txt |uniq -c
如果是要找出重复的行 例如:
uniq -d sorted.txt 或者是sort sorted.txt|uniq -d 或者是cat sorted.txt |uniq -d
同时我们也可以指定键:-s ,-w -s:指定可以跳过前n个字符 -w:指定用于比较的最大字符数
创建临时文件、目录、或着文件名 创建临时文件、目录、或着文件名的作用是,编写shell脚本的时候我们经常要储存一些临时数据,最适合的储存点是/tmp,但是重启会清空所以
例如:创建临时文件:filename=`mktemp`
创建临时目录:dirname=`mktemp -d`
创建文件名,但是不创建实际的文件或目录: tmpfile=`mktmp -u`
根据模板创建临时文件:mktemp test.xxx 注意:要想正常工作必须保证有三个x,x会被随机的字符(字母或者数字)替换
分割文件或者数据 作用:提高可读性、生成日志、用过E-mail发送文件等
split -b 10k data.file ------将data.file 这个文件分割为多个大小为10k的文件除了k外还可以用 M、G、c、w
如果是要指定分割的文件名:split -b 10k data.file -d -a 4 split_file -d是指以数字为后缀-a为指定后缀的长度split_file指的是生成头文件名为split_file的文件
如果是要以行来分割就 :split -l 10 data.file 以每10行进行分割
split -b 10k data.file ------将data.file 这个文件分割为多个大小为10k的文件除了k外还可以用 M、G、c、w
如果是要指定分割的文件名:split -b 10k data.file -d -a 4 split_file -d是指以数字为后缀-a为指定后缀的长度split_file指的是生成头文件名为split_file的文件
如果是要以行来分割就 :split -l 10 data.file 以每10行进行分割
split的进化工具:csplit ---该工具可以根据文本自身的特点进行分割,是否存在某个单词或文本内容都可以作为分割文件的条件,具体的内容请看下一章
阅读全文
0 0
- 关于shell-----2
- 关于shell
- 关于Shell
- 关于shell
- 关于shell
- 关于shell
- shell 关于&
- 关于shell
- 关于msn shell
- 关于shell和bash
- 初学shell,关于空格
- 关于linux shell
- 关于linux shell 编程
- 关于shell中的basename
- shell 中 关于 $
- 关于shell脚本学习
- 关于shell排序
- 关于shell的知识
- 初识----Spring Boot的微框架
- C_栈的应用----数制转换
- 异步fifo设计(四)
- 文章标题
- SSIS控件无法设置断点
- 关于shell-----2
- SPOJ DQUERY 求区间内不同数的个数 (主席树)
- bash shell命令
- HDU 1005 Number Sequence(矩阵快速幂)
- 欢迎使用CSDN-markdown编辑器
- crazyflie 功能包安装
- python文件分段的两种方式
- 深度学习之我见
- 【剑指offer】面试题30:包含min函数的栈