linux - 如何在Linux中匹配2个文件一个文件有1列,第二个文件有2列
问题描述
我有 2 个文件。
文件 1:
123456789
789465123
456789132
文件 2:
r6rg6r6,123456789
dfg4665,789465123
dthegfd,456789132
我需要匹配 ID 并将 ID 打印到文件中
r6rg6r6
dfg4665
dthegfd
我试过awk
, cmp
, comm
,diff
什么都没有
这是我试图在命令行中运行的命令
awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' file1 file2 > test.csv
解决方案
你试过了吗grep
,它很强大
grep -F <file1> <file2> | cut -d ' ' -f1
或者只是awk
:
awk '(NR==FNR){a[$1]; next}($2 in a){print $1}' <file1> <file2>
但是,由于您已经尝试过此解决方案,因此可能是由于 dos/windows 副本而导致 CRLF 终止的问题。虽然您可以使用 解决此问题dos2unix
,但您也可以使用以下awk
行(仅限 GNU awk):
awk -v RS='\r?\n' '(NR==FNR){a[$1]; next}($2 in a){print $1}' <file1> <file2>
推荐阅读
- php - $.ajax 仅在 safari 中获得 419,适用于 chrome 和 FF
- python - 如何为 Pydantic/FastAPI 的枚举类设置默认值
- python - pyngrok - 重试失败的连接
- http - 为许多服务器自动更新 SSL 证书
- azure - 使用 Azure AD B2C 用户流(或自定义策略)进行 SAFE Stack 身份验证——有人解决了这个问题吗?
- excel - 从数据中删除 15000 个空行但代码非常慢
- python - 用于 vpn 连接的 python 上下文管理器
- typescript - 如何过滤棱镜中的数据?
- javascript - 如何以角度获得正确的网格容器值
- kotlin - 在谷歌 AR 场景查看器中设置估计照明?