当前位置:网站首页>Shell常用
Shell常用
2022-07-18 17:56:00 【ZenPower】
- set -e
在"set -e"之后出现的代码,一旦出现返回值非零,整个脚本就立刻退出(避免脚本报错后继续执行,导致危险操作)
set -e
exit 0 命令正常退出
exit 1 命令非正常退出
echo $? 获取上次命令执行的结果,如果是0就是正常执行,非0就是执行异常
- cat
查看文件内容
cat file
合并文件内容
cat file1 file2 file3 > file
- sort
对文本内容进行排序
sort [选项参数] file [-k file1,file2]
[选项参数]
-u 去重
-r 反序排列
-n 按照数值大小排序(默认数字会按字符排序)
-t 指定排序时所用的列分隔符
-k 按指定列排序
注:sort默认按第一列以ASCII码次序排列
$ cat test.txt
Apple 15
Coconut 7
Banana 20
Apple 15
$ sort
Apple 15
Apple 15
Banana 20
Coconut 7
$ sort -u
Apple 15
Banana 20
Coconut 7
$ sort -u -k 2
Apple 15
Banana 20
Coconut 7
$ sort -u -n -k 2
Coconut 7
Apple 15
Banana 20
- uniq
删除文本中的重复行(uniq检查重复行时,只会检查相邻的行,所以去重一般与sort结合,或直接使用sort -u)
- awk
是一种处理文本文件的语言,用于逐行读取文件内容,并以默认分隔符(空格/TAB)做行切片,再对每行切片的内容进行分析处理
awk [选项参数] 'BEGIN{} /字符/ {command1; command2...} END{}' file
[选项参数] -F 指定分隔符,-f 调用脚本,-v 定义变量 var = value
'' 行匹配代码块,只能用单引号,内部放置行处理代码
BEGIN {} 初始化代码块,在对每行处理前执行的代码(引用全局变量、设置分隔符等)
/字符/ 匹配代码块,可以是字符串或正则表达式
{} 命令代码块,包含1条或多条命令,多条命令分号分割
END {} 结束代码块,在对每行处理后执行的代码(最终计算,输出结尾摘要等)
awk常用的内置变量、运算符及命令:
$0 完整当前行
$n 当前行切片后的第n个字段
NR 读出的行数量
NF 读出的字段数量
$ 字段引用
print 打印命令
awk '{print}' test.txt //默认以空格做行切片,并输出整行,等价于'{print $0}'
awk '{print $1,$3}' test.txt //默认以空格做行切片,并输出第一、第三列
awk -F, '{print $1}' test.txt //以逗号,做行切片,并输出第一列
awk -f script.awk test.txt //等价
$ cat script.awk
#初始化代码块
BEGIN {
FS = ","
}
#命令代码块
{
print $1
}
#结尾代码块
END {
}
边栏推荐
猜你喜欢
如何将自己的包发布到npm上(或者是自己/公司的私有源
Form 表单内有多个元素的使用方式
Oracle OCP和MySQL OCP认证考试内容有哪些?
VS Code配置Go语言环境 和 在VSCode中成功安装Go相关插件问题:tools failed to install.
uniapp <map></map>组件报错Map key not configured 及uniapp路由配置及跳转
js的延迟加载方式
JS understand the reference of objects - shallow copy - deep copy
220. 存在重复元素 III
Solve the problem that the browser will automatically fill in the password
Web3 游戏:现状与未来
随机推荐
NVM installation
深度解析Promise.all的核心功能并手写实现
如何将自己的包发布到npm上(或者是自己/公司的私有源
laravel 框架的tosql打印出来的sql未绑定参数,怎么可以打印带参数的sql?[通俗易懂]
英语不好,Oracle OCP或MySQL OCP考试也能拿80分的高分
Who is cloudflare?
JS handwriting implementation call, apply, bind (super detailed)
MySQL view SQL statements executed in real time
JS handwriting realizes deep copy (consider circular reference)
How to use multiple elements in a form
【建议收藏】MySQL 三万字精华总结 —查询和事务(三)
yarn ‘tsc‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 安装全局包后找不到命令的问题
某数字化校园系统通用型文件上传漏洞getshell(渗透测试-0day)
JS手写实现深拷贝(考虑循环引用)
Oracle 19c OCP 1Z0-083题库(7-12)
win11中弹窗以新标签页打开---firefox
node升级版本
(1) CTS-Tradefed测试框架环境搭建
js第四节课
Pytorch学习----从Tensor到LR