first file of information page
name/joe/salary1 50 10 2
name/don/miles2
20 4 3
name/sam/lb3 0 200 50
有人请告诉我如何删除上述文件中的所有单词,以便我的输出如下所示
50 10 2
20 4 3
0 200 50
答案 0 :(得分:2)
改用awk。以下代码说明要遍历每个字段,检查它是否为整数。如果是,请打印出来。不需要复杂的正则表达式。
$ awk '{for(i=1;i<=NF;i++) if($i+0==$i) {printf $i" "} print ""}' file
50 10 2
20 4 3
0 200 50
答案 1 :(得分:1)
看起来您只想保留数字和空格。如果是,您可以这样做:
sed 's/[^0-9 ]//g' inputFile
编辑:要求更改,如果找到带有字母的数字,则应将其视为该字词的一部分。
这个Perl脚本可以做到:
perl -ne 's/(?:\d*[a-z\/]+\d*)*//g;print' input
答案 2 :(得分:1)
sed -e "s/[a-zA-Z/]/ /g" file
会这样做,但如果你想保留数字和空格,我更喜欢codaddict的方式。这样就可以去掉所有字母和'/'符号,用空格替换它们。
如果要修改文件,请传递-i
开关。此命令将输出文件的外观。
答案 3 :(得分:0)
如果您的文件具有此结构,我建议先过滤掉第一行,然后从第一行开始删除所有字符:
sed -ni '2,$s/^[^ ]*//p' file
答案 4 :(得分:0)
删除每一行上的所有内容,直到第一个空格字符(也删除前导空格):
sed 's/\S*\s*//' file