【linux系统】命令学习(六)awk sed grep 与管道的使用
程序运行环境输入与输出
标准输入0
read a;echo $a
标准输出1
echo cesh
错误输出
ls notr
管道重定向
管道与管道之间可以重定向
管道与文件之间可以重定向
用于写入

将错误的输出存进去

管道链接
管道连接符 |
可以链接多个程序
管道连接是以紫禁城的方式启动的

管道执行的上下文控制
使用{command;}注意花括号与内部命令之间的空格与分号
使用控制逻辑while read 组合
使用${}''
grep awk sed 学习
grep 基于正则表达式查找满足条件的行
awk 根据定位到的数据行处理其中的分段
sed 根据定位到的数据行修改数据
与sql对比
grep 数据查找定位 select * from table like "%yyyy"
awk 数据切片 select field from table
sed 数据修改 update table set filed = new where hhhhh
平台实现差异
不同的系统使用命令会有些不同
https://www.gnu.org/software/sed/manual/sed.html
https://www.gnu.org/software/grep/manual/grep.html
https://www.gnu.org/software/gawk/manual/gawk.html
BRE基本正则表达式
^开头 $结尾
[a-z][0-9]区间,如果开头带有^表示不能匹配区间内的元素
*0个或多个
.表示任意字符
ERE扩展正则表达式
基本正则表达式基础上的扩展
?非贪婪匹配
+一个或者多个
()分组
{}范围约束
| 匹配多个表达式的任何一个
bash 编程语法
变量
命名 英文字母、下划线、数字,收个字符不能以数字开头
中间不能有空格,可以使 用下划线(_)
不能使用标点符号
不能使用bash里面的关键字(可以用help命令查看保留关键字)
定义与使用变量
your_name="Linda“
只读变量
a="123"
readonly a
删除变量
unset variable_name (不能删除只读变量)
变量类型
字符串:“12222”
拼接字符串:name = "hello, "$bianliang"!"
数组 arrayname = (value0 value1 value3)
取数组 valuen = ${arrayname[n]}
单独赋值 arrayname[0]=value0
控制语句【空格非常重要】
条件分支:if
if condition
then
command1
command2
commanf
fi
if [3==3];when echo "true";else echo "false";fi
if [[3>3]];when echo "true";else echo "false";fi
-gt 大于号 -lt小于号 -eq 相等
for 循环
for var in item1 item2 item 3
do
command1
command2
done
for i in $(uuu.txt) ; do echo $(i);done
while循环
while condition
do
command
done
while read line; do echo $line;done < tuii.txt (表示从tuii.txt文件去读取)
bash脚本编写
read
从终端或者文件中读取输入的内部命令
读取整合输入
每行末尾的换行符不被读入
read var
read var0 var1
read
脚本参数传递
$0脚本名称
$1-$n 获取脚本参数
$# 传递到脚本的参数个数
$$ 脚本运行的当前进程号
$*以一个单字符串显示所有向脚本传递的参数
$?是显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误
基本运算
算术运算
+加法 -减法 \*乘法 /除法 %取余 =赋值 ==相等 !=不相等 -eq相等 -ne不相等 -gt大于 -lt小于 -ge大于等于 -le 小于等于
语法:‘expr $a + $b’
bash与linux命令集合
#!/bin/bash
echo $1,$2,$3
echo "文件名 "$0
echo "参数变量 "$#
echo "return "$?


【linux系统】命令学习(六)awk sed grep 与管道的使用的更多相关文章
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- awk\sed\grep 补充
# awk\sed\grep 补充 以上命令中字符 / 在sed中作为定界符使用,也可以使用任意的定界符 sed's:test:TEXT:g' sed's|test|TEXT|g' 定界符出现在样式内 ...
- 一点点linux系统的学习心得
我相信你正在阅读本文的时候,可能是因为你渴望学习Linux技术.我想分享一下过去两年中我自己的一些学习经历,希望你能更顺利地成为Linuxer. 两年前在Linux系统的运行和维护方面找到了一份工作( ...
- 安装虚拟机和Linux系统的学习
安装虚拟机和Linux系统的学习(随笔3) 1.安装虚拟机 首先我按着老师给的链接上的步骤一步一步安装VirtualBox,进行得十分顺利. 接着则是在虚拟机上安装Ubuntu. 然而安装完成以后按要 ...
- Linux 系统编程 学习:01-进程的有关概念 与 创建、回收
Linux 系统编程 学习:01-进程的有关概念 与 创建.回收 背景 上一讲介绍了有关系统编程的概念.这一讲,我们针对 进程 开展学习. 概念 进程的身份证(PID) 每一个进程都有一个唯一的身份证 ...
- Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道
Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道 背景 上一讲我们介绍了创建子进程的方式.我们都知道,创建子进程是为了与父进程协作(或者是为了执行新的程序,参考 Linux ...
- Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号
Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道 ...
- Linux 系统编程 学习:04-进程间通信2:System V IPC(1)
Linux 系统编程 学习:04-进程间通信2:System V IPC(1) 背景 上一讲 进程间通信:Unix IPC-信号中,我们介绍了Unix IPC中有关信号的概念,以及如何使用. IPC的 ...
- Linux 系统编程 学习:05-进程间通信2:System V IPC(2)
Linux 系统编程 学习:05-进程间通信2:System V IPC(2) 背景 上一讲 进程间通信:System V IPC(1)中,我们介绍了System IPC中有关消息队列.共享内存的概念 ...
随机推荐
- 前端开发3年了,竟然不知道什么是 Vue 脚手架?(上)
一.脚手架认识和使用前提 CLI 是什么意思? CLI -- Command-Line Interface 命令行界面,俗称脚手架. 脚手架就是一个大概的框架,是建筑学上的一个概念. 1.1.什么是V ...
- 关于VS中的无法解析的外部符号问题
利用caffe的源码编译出的caffe.lib静态链接库里面就包含了源码里面的那些函数的接口i,所以如果在程序中使用的是源码的话,就不需要在链接器里面再添加此静态链接库了 对于无法解析的外部符号,首先 ...
- bzoj4712 洪水(动态dp)
看起来很模板的一个题啊 qwq 但是我还是wei 题目要求的是一个把根节点和所有叶子断开连接的最小花费. 还是想一个比较\(naive\)的做法 我们令\(dp1[i]\)表示,在\(i\)的子树内, ...
- 洛谷4475 巧克力王国(KD-Tree + 维护子树和)
(嘤嘤嘤 又是一个自闭了一晚上的题) qwq果然不是平面上的点的问题,也可以直接用KDTree打暴力 我们对于巧克力直接建kdtree 维护一个\(mx[i],mn[i]\) 但是有一个非常不友好的事 ...
- FastAPI 学习之路(三十八)Static Files
如果使用前后台不分离的开发方式,那么模板文件中使用的静态文件,比如css/js等文件的目录需要在后台进行配置,以便模板渲染是能正确读到这些静态文件.那么我们应该如何处理呢. 首先安装依赖 pip in ...
- [对对子队]会议记录5.27(Scrum Meeting12)
今天已完成的工作 朱俊豪 工作内容:寻找电池模型和BGM,修改关卡选择场景 相关issue:优化初步导出版本 相关签入:perf:地图界面优化 feat:更新系列资源(星星,大电池) 何瑞 ...
- python中yield的理解
首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂 ...
- hdu 1502 Regular Words(DP)
题意: 一个单词X由{A,B,C}三种字母构成. A(X):单词X中A的个数.B(X),C(X)同理. 一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有 ...
- hdu 2176 取(m堆)石子游戏 (裸Nim)
题意: m堆石头,每堆石头个数:a[1]....a[m]. 每次只能在一堆里取,至少取一个. 最后没石子取者负. 先取者负输出NO,先取胜胜输出YES,然后输出先取者第1次取子的所有方法.如果从有a个 ...
- docker 使用报错的相关问题
docker 创建本地主机实例Virtualbox 驱动报错,显示没有下载这个驱动 解决方案,下载virtuabox. https://www.cnblogs.com/effortday/p/1502 ...