搜索特定号码

搜索特定号码

我是文件中的列表数字,我会在字符串中搜索 1 个特定数字

Es. 1 54 67 78 32
    11 4 67 89 90
    13 67 87 32 21

我的搜索是 1

使用 awk 或 grep 命令输出这个数字

1
11
13
21
grep -w 1
awk '/12/'

但不是单身1

这是正确的操作吗?并在 1 行中搜索特定的 2 个数字?

答案1

那么您想要包含指定数字的任何数字吗?将数字模式添加到1,例如:

grep -ow '[0-9]*1[0-9]*' infile

输出:

1
11
13
21

编辑

正如 Stéphane 所指出的,这仅适用于正整数。如果您想要一个更通用的解决方案,类似于建议的内容这里会更好。下面是带有推荐正则表达式的 perlre grep 版本:

grep -oP '[+-]?(0|[1-9]\d*)(\.\d*)?([eE][+-]?\d+)?' infile

查找1其中包含 a 的所有数字现在只需将输出传递给grep 1.

答案2

我已经通过以下2种方法完成了

h=`awk '{print NF}' filename| sort | uniq| sort -nr | sed -n '1p'`
praveen@praveen:~$ for ((i=1;i<=$h;i++))
 do
 awk -v i="$i" '$i ~ /1/{print $i}' filename
done

出去

1
11
13
21

第二种方法

sed -r "s/\s+/\n/g" 文件名 | awk '/1/{打印 $0}'

1
11
13
21

相关内容