如题: grep sed awk 亦或是shell,只要能达到我们的需求就ok。
{{{密码回复可见}}}
本例,把/etc/passwd作为演示文档,你可以自定义一个文档。
{{{密码回复可见}}}
本例,把/etc/passwd作为演示文档,你可以自定义一个文档。
0
#!/bin/bash
while read line;do
if [[ $(echo -n "$line"|sed 's/[^[:digit:]]//g'|wc -c) -eq 1 ]];then
echo $line
fi
done
while read line;do
if [[ $(echo -n "$line"|sed 's/[^[:digit:]]//g'|wc -c) -eq 1 ]];then
echo $line
fi
done
0
python版本代码
- #!/usr/bin/env python
- # coding=utf-8
- path = '/etc/passwd'
- num_list = range(0,10)
- new_num_list = []
- for i in num_list:
- new_num_list.append(str(i))
- str_num = ','.join(new_num_list)
- with open(path) as f:
- for line in f:
- if line.split(':')[3] in str_num:
- if line.split(':')[2] in str_num:
- print line,
0
#!/bin/bash
f=/etc/passwd
line=`cat $f |wc -l`
for l in `seq 1 $line`
do
n=`sed -n "$l"p $f | grep -o '[0-9]\+' | wc -l`
if [ $n -eq 1 ]
then
sed -n "$l"p $f
fi
done
f=/etc/passwd
line=`cat $f |wc -l`
for l in `seq 1 $line`
do
n=`sed -n "$l"p $f | grep -o '[0-9]\+' | wc -l`
if [ $n -eq 1 ]
then
sed -n "$l"p $f
fi
done
0
铭哥,我感觉这个题目有点歧义,是只含有一个数字字符的行,还是含有一个数字的行?,,你的原意好似是含有一个数字字符的行
- [root@master shell]# sed -n '20p' passwd | grep -o '[0-9]'
- 2
- 9
- 2
- 9
- [root@master shell]# sed -n '20p' passwd | grep -o '[0-9]*'
- 29
- 29
铭哥,我感觉这个题目有点歧义,是只含有一个数字字符的行,还是含有一个数字的行?,,你的原意好似是含有一个数字字符的行
0
本帖最后由 rolay8 于 2015-12-23 18:21 编辑
- #!/bin/bash
- cat /etc/passwd|while read line
- do
- num=`echo $line|sed 's/[^0-9]//g'`
- word=`echo -n $num|wc -c`
- if [[ $word -eq 1 ]];then
- echo "$line"
- fi
- done
0
#!/bin/bash
file=/root/passwd
i=`cat $file |wc -l`
for m in `seq 1 $i`
do
# echo $m
a=`sed -n "$m"p $file|sed 's/[^0-9]//g'|wc -c`
if [ $a -le 2 ]
then
sed -n "$m"p $file
fi
done
file=/root/passwd
i=`cat $file |wc -l`
for m in `seq 1 $i`
do
# echo $m
a=`sed -n "$m"p $file|sed 's/[^0-9]//g'|wc -c`
if [ $a -le 2 ]
then
sed -n "$m"p $file
fi
done
0
这样写不知道对不对!!!
- #!/bin/bash
- f=/root/test.txt
- line=`wc -l $f|awk '{print $1}'`
- for l in `seq 1 $line`; do
- n=`sed -n "$l"p $f |sed 's/[^0-9]/ /g'|awk -F ' ' '{print NF}'`;
- if [ $n -eq 1 ]; then
- sed -n "$l"p $f
- fi
- done
这样写不知道对不对!!!
编辑回复