gpt4 book ai didi

awk - 如何根据两个文件与 sed 和/或 awk 的比较来提取特定行?

转载 作者:行者123 更新时间:2023-12-01 22:51:04 24 4
gpt4 key购买 nike

我需要从 file2.txt 中提取所有与字符串不匹配的行,直到 file1.txt 中任何行的第一个点。我对尽可能接近我当前方法的解决方案很感兴趣,这样我很容易理解,并且在 linux bash 中仅使用 sed 和/或 awk。

文件1.h

apple.sweet banana
apple.tasty banana
apple.brown banana
orange_mvp.rainy day.here
orange_mvp.ear nose.png
lemon_mvp.ear ring
tarte_mvp_rainy day.here

文件2.h

orange_mvp
lemon_mvp
lemon_mvp
tarte_mvp
cake_mvp

想要的结果

tarte_mvp
cake_mvp

目前的错误做法

$ awk '
NR==FNR { sub(/mvp(\..*)$/,""); a[$0]; next }
{ f=$0; sub(/mvp(\..*)$/,"", f) }
!(f in a)
' file2.h file1.h

apple.sweet banana
apple.tasty banana
apple.brown banana
orange_mvp.rainy day.here
orange_mvp.ear nose.png
lemon_mvp.ear ring
tarte_mvp_rainy day.here

最佳答案

使用 awk

$ awk -F. 'NR==FNR {a[$1]=$1;next} a[$1] != $0' file1.h file2.h
tarte_mvp
cake_mvp

关于awk - 如何根据两个文件与 sed 和/或 awk 的比较来提取特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74373237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com