如何对包含特定字符的单词(而不是行)进行GREP并打印整个单词

2024-09-30 10:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量行和单词的文件,例如:

C742 C743 C744 C745 C835 C836 C837 C838 C839 C840 C841 C842 C843 C844 C845 C935 C936 C937 C938 C939 C940 C941 C942 C943 C944 C945 C1035 C1036 C1037 C1038 C1039 C1040 C1041 C1042 C1043 C1044 C1045 D135 D136 D137 D138 D139 D140 D141 D142 D143 D144 D145 D235 D236 D237 D238 D239 D240 D241 D242 D243 D244 D245 D335 D336 D337 D338 D339 D340 D341 D342 D343 D344 D345 D435 D436 D437 D438 D439 D440 D441 D442 D443 D444

我要做的是只列出包含特定数字的单词(假设每个4个字符束都是一个单词),例如35。在

在本例中,我希望打印的结果是:

^{pr2}$

我尝试了一些不同的方法,比如使用grep只找到包含35的整行被打印,或者grep -o 35只打印35,我不知道这个数字的前缀是什么。在


Tags: 文件数字单词grepc841c745c839c836
3条回答

试试这个

for word in `cat filename`; do
    echo $word | grep 35
done

有一个标准的grep解决方案(\S表示非空白字符)

$ grep -o '\S*35\S*' words.txt
C835                                                                                                                  
C935                                                                                                                  
C1035                                                                                                                 
D135                                                                                                                  
D235                                                                                                                  
D335                                                                                                                  
D435  

请尝试以下bash脚本:

cat words.txt | tr " " "\n" | grep 35

说明:

cat读取文字.txt它将它们输出到STDOUT,后者被管道传输到tr,这意味着“translate”:在本例中,从space(“”)到newline(“\n”),然后,grep只执行其默认的逐行行为并搜索包含35的任何内容。在

相关问题 更多 >

    热门问题