grep -f不能輸出結果

自己找了一個形碼碼錶,但是裏面包含了很多繁體異體字,打算提取裏面的常用漢字6700個,當前格式如下:

use.txt:
唉
哎
挨
....
all.txt:
愛 qqq
挨 ddd
哎 jjj
......

嘗試使用如下命令來提取:

grep -f use.txt all.txt > output.txt

期待的結果是這樣:

挨 ddd
哎 jjj

實際輸出文件為空,不知道雜回事

已經確定裏面沒有windows下的換行符

grep是在文件中搜索字符串,应该不太符合你的需求,取多少行应该是用sed命令吧,我对sed命令也不熟悉

鍵入 grep --version 查看一下版本,我這裡時可以用的。

我也不熟悉sed…

grep 是2.5.1

BSD grep 2.5.1 和 gnu grep 3.11 都没问题,是不是你的 grep 不是这些,是 shell 或者 pwsh 自带的 grep,你再查看一下

1 个赞

文件编码是否一致:

file use.txt all.txt

另外 awk 更符合你的需求

awk 'NR==FNR{a[$1];next} $1 in a' use.txt all.txt
2 个赞

應該是這個問題,我開了虛擬機,正常了,無語

1 个赞

這個方案也實現目的,非常感謝

1 个赞