read a;echo $a
echo ceshiren.com
ls not_exist_dir
echo 11 > /tmp/1
read var </tmp/1
错误输出:
ls not_exist_dir > /tmp/output
将错误输出2重定向到1里
ls not_exist_dir > /tmp/output 2>&1
|
|
?可以连接多个程序的执行管道符前后是两个命令,{}里面有两个命令,即命令的集合;
echo hogwarts的输出被重定向到下一个命令;
read line; echo input is $line; 读取一行并输出;
echo hogwarts | { read line; echo input is $line; }
curl https://ceshiren.com/categories.json \
| grep -o '{"id[^}]*}' \
| awk -F, '{print $2,$6}' \
| awk -F '"' '{print $7,$4}' \
| sed 's#:##' \
| sort -nr \
| head -5
#这个方式无法获得变量x,echo接着通过read命令度过来,无法获得,因为这两个命令通过管道连接起来,是以子进程方式运行,子进程运行完就立马销毁了,可以使用{}将两个命令当作一个进程来进行处理
echo hello world | read x; echo $x
#如下两个方式可以获得变量x
echo hello world | { read x; echo $x; }
echo hello world | while read x; do echo $x; done
grep:基于正则表达式查找满足条件的行
awk:根据定位到的数据行处理其中的分段
sed:根据定位到的数据行修改数据
官方文档:
Linux 三剑客 | SQL Structured Query Language |
---|---|
grep 数据查找定位 | select * from table like ‘%xx’ |
awk 数据切片 | select field from table |
sed 数据修改 | update table set field=new where field=old |
[a-z]
?[0-9]
?区间,如果开头带有^表示不能匹配区间内的元素*
?0 个或多个.
?表示任意字符?
?非贪婪匹配+
?一个或者多个()
?分组{}
?范围约束|
?匹配多个表达式的任何一个最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!