使用grep和regex过滤

时间:2014-02-14 07:51:35

标签: regex grep

我需要过滤以“abc”开头的字符串 示例:我有一个文本文件a.txt,其中包含:

youtube
showme adx
girlyouaremyfriend abcde
abcxe

在使用grep过滤后,这是我想要获得的结果:

abcde  
abcxe

由于

4 个答案:

答案 0 :(得分:1)

好的,如果我正确解释你的问题,那么你应该尝试这个(在Linux命令行中):

cat a.txt | tr " ", "\n" | grep "^abc" 

说明:

  • cat读取文件并发送到stdout

  • tr将空格分隔的字符串拆分为换行符

  • grep执行匹配并返回指示的字符串

如果你死定,希望将输出放在一行,你可以追加:

| tr "\n", " "

答案 1 :(得分:0)

grep -o "\babc\w*" a.txt应该做的伎俩

答案 2 :(得分:0)

grep -e "^abc" -e " abc" a.txt|sed 's/.*\(abc[^ ]*\).*/\1/'

答案 3 :(得分:0)

以下是awk版本:

awk '{for (i=1;i<=NF;i++) if ($i~/^abc/) print $i}' file
abcde
abcxe