shell实战:多种方式实现获取列内容推荐

自己不是专业的linux,平时工作中也不用linux编程,自学一些linux shell编程,忘了学,学了忘,效率不高。今天权当复习吧。

想想这样一个情景吧,获取某一行的部分列值。

考虑这样的输入:“root:x:0:0:root:/root:/bin/bash”,现在我们获取用户及shell信息。自己暂时想到的5种实现方式。

#!/bin/bash###############################################第二种实现普通循环##############################################line="root:x:0:0:root:/root:/bin/bash";oldIFS=$IFS;IFS=":";declare-icount=0;#count=0;foritemin$line; [$count-eq0] user=$item if[[$count-eq6]];then shell=$item #letcount++ count=$[$count+1] #count=$(($count+1)) #count=`expr$count+1` #count=$(expr$count+1);IFS=$oldIFS;echo1:$user\'sshellis$shellbyprocess:$$;###############################################第二种实现借助sed命令;##############################################user=`echo$line|sed's/:.*$//'`;shell=$(echo$line|sed's/^.*://');echo2:$user'sshellis$shellbyprocess:$$;###############################################第3种实现借助cut命令;##############################################user=`echo$line|cut-d:-f1`;shell=$(echo$line|cut-d:-f7);echo3:$user\'sshellis$shellbyprocess:$$;###############################################第4种实现xargs使用#############################################echo$line|xargs-d:-n1|tr-s'n' file4user=`catfile4|head-n1`shell=`catfile4|tail-n1`;echo4:$user'sshellis$shellbyprocess:$$;rm-rffile42 /dev/null###############################################第5种实现awk使用#############################################echo$line|awk-F':''{print"5:"$1"'\''s""shellis"$7}'

分析:抛开5种方式的优劣。可以了解以下内容。

文本处理工具:sed,tr

文本列选择工具:cut,awk

文本行选择工具:head,tail

计数运算多种方式:$[],$(()),“

变量声明:declare

参数处理:xargs

其实,在编写过程,连自己经常使用的命令,自己都记不起来。看来会和熟练还是不一样的。

要想捉大鱼,不能怕水深。要想摘玫瑰,就得不怕刺。

shell实战:多种方式实现获取列内容推荐

相关文章:

你感兴趣的文章:

标签云: