大数据常用Shell脚本(二)

一、read命令

  1. 等待用户输入,赋值给后面的变量
  2. t 代表间隔多少s
  3. p 代表提示信息
  4. name用于接收输入的变量
read -t 7 -p "请输入你想打印的文字:" name
echo $name

二、常用命令

  1. cut:从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出
  2. 在linux输入tab,在单引号中 ‘’ 先按ctrl+v,再按tab
#cut.txt内容,以tab分隔============================
dong	shen
guan	zhen
wo	wo
lai	lai
le	le
# -d指定分隔符,-f指定第几列=====================
cut -d "	" -f 1 cut.txt
#结果======================
dong
guan
wo
lai
le
#进阶用法,先grep找到guan所在的行,然后切出guan这个单词
cat cut.txt | grep "guan" | cut -d " " -f 1
#结果
guan
  1. sed:是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
# e多行命令时用到,a新增,d删除,s替换,g全部
#在第二行插入mei nv
sed '2a mei nv' sed.txt
#删除包含wo的行
sed '/wo/d' sed.txt
#将全部wo替换成ni
sed 's/wo/ni/g' sed.txt
#将第二行删除,然后再替换全部的wo为ni
sed -e '2d' -e 's/wo/ni/g' sed.txt
  1. awk:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
#awk [选项参数] ‘pattern1{action1}  pattern2{action2}...’ filename
# -F指定分隔符,-v指定自定义变量
# 内置变量:FILENAME文件名,NR已读记录数,NF切割后列的个数
#搜索passwd文件以root关键字开头的所有行,用:作为分割符输出该行的第7列
awk -F: '/^root/{print $7}' passwd
#查询空行所在的行数
awk '/^$/{print NR}' sed.txt

  1. sort:它将文件进行排序,并将排序结果标准输出。
# n依照数值大小排序
# r按相反的顺序
# t设置分隔符
# k指定要排序的列
#第二列倒序排列输出
sort -t '	' -nrk 2 xiaozhi.txt

三、系统函数

#1、获取文件名gxt.bcp
basename /home/gyx/gxt.bcp
#gxt
basename /home/gyx/gxt.bcp .bcp
#2、获取目录名/home/gyx
dirname /home/gyx/gxt.bcp
#实战举例
pdir=`cd -P $(dirname $filepath); pwd`

四、自定义函数

  1. 必须先定义函数,然后才能调用函数(也就是说函数定义一定要先写)
function sum()
{
        s=$[$1+$2]
        echo "函数执行后得出结果$s"
}
sum $1 $2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值