linux awk、sed、cut等等常用操作demo

table.txt文本

t1  d2
t11  d3
t2
t3
t4

awk 擅长列输出

假设对table表文本 输出每个表删表语句

cat table.txt | awk  '{print "drop table " $1 " ;"}'

当然还可以使用正则匹配其中的列

cat table.txt | awk  '/t1/{print "drop table " $1 " ;"}'

awk操作可以参照
https://www.cnblogs.com/ftl1012/p/9250541.html
http://www.ruanyifeng.com/blog/2018/11/awk.html

sed 擅长行处理

查找到的包含d2列(正则) 将d更换为table 并不显示其他未找到的(-n)

cat table.txt | sed -n  '/d2/ {s/d/table/p}

sed操作可以参照
https://www.runoob.com/linux/linux-comm-sed.html

cut 擅长行内切分

cat test2.txt

No;Name;Mark;Percent
01;tom;69;91
02;jack;71;87
03;alex;68;98

cut -f2 -d";" test2.txt
结果:
Name
tom
jack
alex

cut -c1,2
结果
01
02
03

cut操作可以参照
https://www.cnblogs.com/Spiro-K/p/6361646.html

组合使用
找到hadoop用户启动的hive程序进程号

ps -ef | grep hive | sed -n  '/hadoop/p' | cut -f4 -d" "

tree工具-树状图列出目录的内容,目录结构一目了然

yum install -y tree
tree -L 2 //获得两层目录

结果

├── apache-hive-1.2.1-bin
│   ├── bin
│   ├── conf
│   ├── examples
│   ├── hcatalog
│   ├── lib
│   └── scripts

tree指令的详细操作

(1)tree  -a 显示所有文件和目录(不加-a,则隐藏目录不显示)
(2)tree -d 显示目录名称而非内容
(3)tree -f 在每个文件或目录之前,显示完整的相对路径名称
(4)tree -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
(5)tree -r 以相反次序排列
(6)tree -t 用文件和目录的更改时间排序
(7)tree -L n 只显示 n 层目录 (n 为数字)
(8)tree -dirsfirst 目录显示在前,文件显示在后
(9)可以加的参数
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-D 列出文件或目录的更改时间。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。

持续更新!!

发布了31 篇原创文章 · 获赞 11 · 访问量 6441

猜你喜欢

转载自blog.csdn.net/cyz52/article/details/103724482
今日推荐