语法总是记不牢,文字记录之,搞个cheat sheet,自己用。。
1. 数值计算
a=0; (( a = a +1 )); echo $a
2. for循环
for f in `ls`; do echo $f; done
3. while循环
a=0; while [ $a -lt 10 ]; do echo -n "$a "; (( a = a+1 )); sleep 1; done ; echo;
a=0; while (( a < 10 )); do echo -n "$a "; (( a = a +1 )); sleep 1; done ; echo;
4. if判断
if [ -d /usr/local/bin ] ; then echo "directory exists."; else echo "directory not exists."; fi
if test -d /usr/local/bin; then echo "directory exists."; else echo "directory not exists."; fi
[ -d /usr/local/bin ] && echo "directory exists"
[ -d /user/local/bin ] || echo "directory not exists"
# for integers
num1 -eq num2 True if num1 equals num2.
num1 -ne num2 True if num1 is not equal to num2.
num1 -lt num2 True if num1 is less than num2.
num1 -gt num2 True if num1 is greater than num2.
num1 -le num2 True if num1 is less than or equal to num2.
num1 -ge num2 True if num1 is greater than or equal to num2.
# for string
str1 = str2 True if str1 and str2 are identical.
str1 != str2 True if str1 and str2 are not identical.
-n str1 True if str1 is not null (length is greater than zero).
-z str1 True if str1 is null (length is zero).
# for file conditions
-f somefile True if somefile exists and is an ordinary file.
-d somefile True if somefile exists and is a directory.
-s somefile True if somefile contains data (the size is not zero).
-r somefile True if somefile is readable.
-w somefile True if somefile is writable.
-x somefile True if somefile is executable.
# logical operators
cond1 -a cond2 True if both cond1 and cond2 are true.
cond1 -o cond2 True if either cond1 or cond2 is true.
! cond1 True if cond1 is false.
5. sed
sed 's/one/two/g' < in.file.txt > out.file.txt
sed -r 's/[0-9]{3,}//g' < in.file.txt <-- 注1
sed 's:old:new:g' < in.file.text > out.file.txt <-- 注2
sed -r 's/[0-9]{3,}/(&)/g' < sed.txt
sed -r 's/([0-9]+)\s+([a-z]+)/\2 \1/g' < sed.txt <-- 注3
sed -n -r '/\S+/p' < sed.txt <-- 注4
sed -r '/^$/d' < sed.txt
sed -n -r 's/([0-9]+)\s+([a-z]+)/\2 \1/gpw test.txt' < sed.txt <-- 注5
sed -r -e 's/([0-9]+)\s+([a-z]+)/\2 \1/g' -e '/^$/d' < sed.txt <--注6
注1: -r参数启用extended regular expression,原来自带的太弱了,而且要记好几套正则表达式很烦,干脆只要用到正则表达式的地方都启用扩展的,比如grep -E "[0-9]+"
注2: 分割符号可以是 / , : , _ , |
注3: 如果不启用-re那么'('还得写成'\(',很恶心
注4: sed默认会打印每一行(不论有没匹配),-n表示默认不打印,后面的p表示如果匹配了那执行打印该行,整行意思是打印非空的行
注5: /p 答应 /g 全局 /w file 结果写到文件,可以组合多个command
注6: 多条sed指令用-e分开
分享到:
相关推荐
chatgpt 用于数据科学的提示词与使用方法 ChatGPT 已经席卷了(数据)世界,并正在成长为跨各种任务的更有用的工具之一。在本备忘单中,我们将重点介绍数据科学家可以在 ChatGPT 中使用的有用提示,作为其数据工作...
### CSS Cheat Sheet V2知识点详解 #### 概述 CSS(Cascading Style Sheets)是一种样式表语言,用于描述文档的呈现方式。本备忘单("css-cheat-sheet-v2.pdf")提供了CSS中一系列重要的属性、选择器以及单位等基础...
利用精密平移台在可能的裂纹区扫描激发源和加热源,获得打开光热调制和关闭光热调制时的声表面波信号,也即不同位置处样品加热和冷却时的信号Sheat和Scool,由于光热调制产生的压应力使裂纹闭合,使Sheat产生明显的...
鞘流技术是实现高浓度气溶胶颗粒物光学检测的关键技术之一。在空气动力学理论和国外相关研究的基础上设计了一种气体鞘流器来实现高浓度气溶胶粒子的有效测量。首先根据大型通用有限元分析软件ANSYS中的Gambit和...
setting.xml文件,修改Maven仓库指向至阿里仓
基于java的玉安农副产品销售系统的开题报告
dev-c++ 6.3版本
基于java的项目监管系统开题报告
基于springboot多彩吉安红色旅游网站源码数据库文档.zip
毕业设计&课设_基于 AFLFast 改进能量分配策略的毕业设计项目,含 Mix Schedule策略设计及测试结果分析.zip
基于springboot办公用品管理系统源码数据库文档.zip
C++调用qml对象Demo
非常漂亮的类Web界面的Delphi设计54ed7-main.zip
VB SQL车辆管理系统是一款基于Visual Basic(VB)编程语言和SQL数据库开发的综合车辆管理工具。该系统集成了车辆信息管理、驾驶员信息管理、车辆调度、维修记录、数据存储与检索、报告生成以及安全权限管理等多个核心功能模块。 源代码部分提供了详细的开发流程和实现方法,涵盖了从数据库设计、界面设计到事件驱动编程、数据访问技术和错误处理等关键技术点。通过该系统,用户可以方便地录入、查询、修改和删除车辆及驾驶员信息,实现车辆信息的实时更新和跟踪。同时,系统还支持生成各类车辆管理相关的报告,帮助用户更好地掌握车辆运营情况。 系统部分则采用了直观易用的用户界面设计,使得用户能够轻松上手并快速完成车辆管理工作。系统还具备强大的数据处理能力和安全性,通过数据备份和系统升级优化等功能,确保数据的完整性和系统的稳定运行。 总体而言,VB SQL车辆管理系统是一款功能全面、易于操作且安全可靠的车辆管理工具,适用于企业和个人进行日常车辆运营和管理。无论是车辆信息的录入、查询还是报告生成,该系统都能够提供高效、便捷的服务,是车辆管理工作的理想选择。
AutoSAR基础学习资源
基于springboot英语学习平台源码数据库文档.zip
数据集,深度学习,密封数据集,马体态数据集
基于java的数字家庭网站开题报告
podman使用国内源镜像加速器
基于springboot+web的留守儿童网站源码数据库文档.zip