Linux的shell小脚本的用途

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  我们可以在linux上使用cat命令,进行清洗数据,

  使用工具 cat 和 tr, 方法如下:

  bash$ cat -v startqftest.sh |tr -d “^M” > qf.sh

  其中 startqftest.sh 是存在问题的脚本, qf.sh是新生成的文件。

  sed ‘s/^M//’ test.sh > back.sh^M是Ctrl+v Ctrl+m

  解释一下, cat 可以查看许多不可见这符,

  cat -t 显示TAB 为 ^I

  cat -e 显示行尾为 $,

  cat -v 显示不可见字符,用^M表示,所以^M就表示不认识的不可见字符。M 表示Mark,标记的意思。

  tr – translate or delete characters

  另外,cat 还可以用来调Makefile,

  cat -t Makefile 查看命令中有非Tab开头的,

  grep ‘^ ‘ Makefile 查找命令行中以空格开头的行

  cat -e Makefile 查看行尾是否正确,防止\后面多一个空格,

  grep ‘\\[ ]$’ Makefile 找出以上那样的行

  最后,散仙还讲说一下,会简单的shell编程带来的好处,当我们使用hadoop进行集群提交作业时,你可能使用的是C++,或者PHP,或者Python语言等非Java编写的MR程序,这种方式就是Hadoop Streaming的方式了,当我们向集群提交作业时,可能会执行一段很长的shell命令来提交作业,并且在每个集群上都要分发一份命令,而这时候我们封装一个shell脚本,就很方便了,因为你不可能去手动执行每个节点上的命令,假设集群规模很大,那将是多么耗时的一件事情,而且还容易出错,所以,封装个脚本可以重复利用,也很简洁,如下所示的一段提交命令

  #!/bin/sh

  bin/hadoop jar

  hadoop-streaming-1.2.0.jar \

  -files map.py \

  -files r.py \

  -mapper ‘map.py’ \

  -reducer ‘r.py’ \

  -input /note \

  -output /noteout

  封装一个shell脚本里面,可以重复使用,执行起来也非常方便,当然使用shell编程的可以完成很多事情,散仙上面所举的例子只是它的冰山一角,有兴趣的朋友可以再去深入的研究一下。

[1][2]

不愧是春城,花香四季,品种繁多。

Linux的shell小脚本的用途

相关文章:

你感兴趣的文章:

标签云: