shell脚本
来源:互联网 发布:数据挖掘的特点 编辑:程序博客网 时间:2024/06/05 00:38
1. grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
1.命令格式:
grep [option] pattern file
2.命令功能:
用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
3.命令参数:
-A<显示行数> --after-context=<显示行数> #除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-B<显示行数> --before-context=<显示行数> #除了显示符合样式的那一行之外,并显示该行之前的内容。
-C<显示行数> --context=<显示行数>或-<显示行数> #除了显示符合样式的那一行之外,并显示该行之前后的内容。
-i --ignore-case #忽略字符大小写的差别。
-v --revert-match #显示不包含匹配文本的所有行。
grep babel package.json "build": "babel src/ -d lib/ --source-maps", "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.0", "babel-preset-flow": "^6.23.0", "babel-preset-stage-0": "^6.24.1",
正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。
cut是以每一行为一个处理对象的,这种机制和sed是一样的。
cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f :用-d来设置间隔符,然后用-f来设置我要取的是第一个域
flowStudy liyan$ grep babel package.json | cut -d : -f1 "build" "babel-cli" "babel-preset-env" "babel-preset-flow" "babel-preset-stage-0"flowStudy liyan$ grep babel package.json | cut -d : -f2 "babel src/ -d lib/ --source-maps", "^6.26.0", "^1.6.0", "^6.23.0", "^6.24.1",
-d后间隔符为冒号,-f1取第一个域,-f2取第二个域
3.sed
Linux sed命令是利用script来处理文本文件。
sed可依照script的指令,来处理、编辑文本文件。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
sed 's/要被取代的字串/新的字串/g'
例子:
test.json:
"devDependencies": { "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.0", "babel-preset-flow": "^6.23.0", "babel-preset-stage-0": "^6.24.1", "flow-bin": "^0.53.1" }
shell:
sed 's/babel/baXXX/g' test.json > test1.json
新生成了test1.json 内容如下:
"devDependencies": { "baXXX-cli": "^6.26.0", "baXXX-preset-env": "^1.6.0", "baXXX-preset-flow": "^6.23.0", "baXXX-preset-stage-0": "^6.24.1", "flow-bin": "^0.53.1" }
4. |
管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard
error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input.
cmd1 | cmd2 | cmd3
command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了。
通过管道之后:comand1,comand2的正确输出不显示在屏幕上面
5.重定向1.输出重定向:
Command > filename把标准输出重定向到一个新文件中Command >> filename把标准输出重定向到一个文件中(追加)Command > filename把标准输出重定向到一个文件中Command > filename 2>&1把标准输出和错误一起重定向到一个文件中Command 2 > filename把标准错误重定向到一个文件中Command 2 >> filename把标准输出重定向到一个文件中(追加)Command >> filename2>&1把标准输出和错误一起重定向到一个文件(追加)2.输入重定向:
Command < filename > filename2Command命令以filename文件作为标准输入,以filename2文件作为标准输出Command < filenameCommand命令以filename文件作为标准输入Command << delimiter从标准输入中读入,知道遇到delimiter分界符- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell 脚本
- SHELL 脚本
- shell脚本
- shell脚本
- shell 脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- shell脚本
- 暑期ACM集训-网络流
- HDU1690(最短路 两种解法 Dijkstra和Floyd)
- 更新oracle数据库时间字段全部数据
- Spring设计模式探幽(1)
- 在win2012下部署安装.NET4.0(4.5)框架
- shell脚本
- HDU 2089 分拆素数和 (素数打表)
- ios 关于截图
- python图片字符画
- spock spring 集成测试框架搭建心得
- 基于数据库去完成用json方式进行的工具提示
- iOS 文件预览的四种方法
- HDU 6180 Schedule (扫描线 化线成点)
- Oracle索引总结(转载)