在unix中打印出整数文字出现次数

时间:2014-02-08 07:31:31

标签: regex unix grep

我试图使用grep命令在foo.txt文件中打印出所有出现的整数文字,但我似乎无法找到方法。

我能想到的唯一想法就是使用[0-9]作为我的模式,但是会打印所有出现数字而不仅仅是文字的行。

编辑:假设foo.txt包含:

string string1 = "Hello world";
cout << string1.at(2) << endl;
cout << string1at(3) << endl;

然后预期的输出是:

cout << string1.at(2) << endl;
cout << string1at(3) << endl;

3 个答案:

答案 0 :(得分:1)

有些人喜欢这样:

awk -F"[()]" '$2' foo.txt
cout << string1.at(2) << endl;
cout << string1at(3) << endl;

或确保它在括号中包含数字:

awk -F"[()]" '$2~/[0-9]+/' file
cout << string1.at(2) << endl;
cout << string1at(3) << endl;

答案 1 :(得分:0)

使用grep -o [1-9][0-9]* foo.txt

答案 2 :(得分:0)

这是使用环绕声断言的另一种方式:

测试字符串:

hello 1234 hello234h 122test 123

正则表达式:

grep -o "(?<=\s|^)([0-9]+)(?=\s|$)" foo.txt

匹配

"1234", "123"

正则表达式示例:

http://regex101.com/r/vP5zD7