统计文件中单词个数
1.统计文件中的单词数,用shell命令。tr ' ' '/n' < source.txt | grep -c -w 'cau'tr ' ' '/n' 将空格都换成换行,再统计
统计文件的行数
统计文件的行数统计文件的行数:1) cat runjob.sh | wc -l2) wc -l runjob.sh | awk {'print $1'}3) wc -l runjob.sh | cut -d' ' -f1
去掉变量的前后空格
# v_1=" 123 "# echo "!$v_1!"! 123 !# v_2=`echo $v_1`或# v_2=`expr $v_1`# echo "!$v_2!"!123!
批量修改文件名
--批量修改文件名[etl@cppimii-etl01 fjz_31]$ cat rename_f.sh#!/bin/shfind . -type f -name "PEO*" |while read i; do mv "$i" `echo "$i" | sed 's/20120408/20120409/g'`;done
从配置文件中提取IP
--提取配置文件111.txt中的ip:[etl@cppimii-etl01 fjz_script]$ cat 111.txtdb = oracleip = 10.3.7.111[etl@cppimii-etl01 fjz_script]$ sed -n '/ip/'p 111.txt | awk -F= '{print $2}'10.3.7.111[etl@cppimii-etl01 fjz_script]$ cat 111.txtdb = oracleip = 10.3.7.111date=2012/05/12=end[etl@...
获取一个月的最后一天
三种方法:cal | xargs | awk '{print $NF}'cal | tr -s "\n" " " | awk '{print $NF}'cal | tr -d "\n" | awk '{print $NF}'
多行合并
# cat -A user_passwd.txttest:123$$$oracle:1$$$$# awk '{printf "%s ",$0}' user_passwd.txttest:123 oracle:1 # cat user_passwd.txt | tr -s "\n" " "test:123 oracle:1# echo `cat user_passwd.txt`test:123 oracle:1# while r...
xargs用法详解
Xargs用法详解1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find /sbin -perm +700 |ls -l 这个命令是错误的find /sbin -perm +700 |xargs ls -l 这样才是正确的xar...
取字符串长度
i_var=abcd三种方法:1)echo ${#i_var}2)expr length $i_var3)echo $i_var | awk '{print length($0)}'
Linux 每月自动改密码
#--month_passwd.shi_sys=cmsset -A i_mon On Tw Th Fo Fi Si Se Ei Ni Te El Tx #--01月i=`date +%m` #--去掉前导0j=`echo $i|sed s/^0*//g`j=`expr $j - 1` echo "root:${i_mon[$j]}${i}#${i_sys}" | chpasswd ...
CU--Shell编程大赛
ChinaUnix技术实践之四----Shell编程大赛! 问题1:用最简洁的命令列出当前目录下的一级子目录,可以不包含隐藏目录(目录名以.开头的目录)[@more@]--答案:1)tree -d -L 12)ls -d */3)du --max-depth=14)find ./* -maxdepth 0 -type d5)find * -type d -prune -print6)find ! -path . -type d -prune -print 7)ls -F|grep "/"问题2:GNU sed 提供了-i选项,为什么有人说sed -i 并不象 ed 一样真正的编辑文件?(提示:观察文件改变前后的inode)--答案:区别在于交互式,因为sed只适用于非交互式的场合(可以认为这是一种
删除文件中包含指定字符串的行
删除当前目录下,所有文件中包含get_tbms串的行:find . -name "*.*"| xargs -i{} sed -i -e '/get_tbms/d' {} [@more@]
指定目录下的所有文件中的字符串替换
#!/bin/sh#--------------- 将字符串uHALr_printf( 或 error_printf( 或 sys_printf( 或 printf( 替换为 StsRtsPrintf(DEBUG_OS_TYPE, ----------[@more@]#扫描目录v_dir下的所有.c文件v_dir=$1find $v_dir -name "*.c" | xargs -i{} sed -i -e 's/<error_printf(/StsRtsPrintf(DEBUG_OS_TYPE,/g' -e 's/<uHALr_printf(/StsRtsPrintf(DEBUG_OS_TYPE,/g'-e 's/<sys_printf(/StsRtsPrintf(DEBUG_OS_TYPE,/g' -e 's/<printf(/StsRtsPrintf(DEBUG_OS_TYPE,/g' {}#-------------------- 如下代码也可---------------# fi