gpt4 book ai didi

linux - awk根据条件过滤文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:14 25 4
gpt4 key购买 nike

我正在使用下面的代码来过滤我的源文件。此代码包含多个gsub条件

但这里的问题是由于多个 gsub,脚本需要花费大量时间来执行和解析另一个文件中的数据。您能否请我知道实现这些条件的其他方法,以便我的脚本可以更快地执行

awk -F"[        \t]" -v OFS="|" '{gsub(/^[ \t]+|[ \t]+$/,"");gsub(/"/,"");gsub(/[[:blank:]]+|\.|\-/,"",$32);gsub(/[[:blank:]]+|\.|\-/,"",$13);gsub(/^[[:space:]]+|[[:spa
ce:]]+$|\,/,"",$38);gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$42);gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$44);gsub(/^[[:space:]]+|[[:space:]]+$/,"",$27);gsub(/^[[:spa
ce:]]+|[[:space:]]+$/,"",$40);gsub(/^[[:blank:]]+|[[:blank:]]+$/,"",$18);

这是相同的代码,但为了更容易阅读而分成几部分(仅用于可读性):

awk -F"[        \t]" -v OFS="|" '{gsub(/^[ \t]+|[ \t]+$/,"");
gsub(/"/,"");
gsub(/[[:blank:]]+|\.|\-/,"",$32);
gsub(/[[:blank:]]+|\.|\-/,"",$13);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$38);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$42);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$44);
gsub(/^[[:space:]]+|[[:space:]]+$/,"",$27);
gsub(/^[[:space:]]+|[[:space:]]+$/,"",$40);
gsub(/^[[:blank:]]+|[[:blank:]]+$/,"",$18);

如果需要输入文件,请告诉我,我们将分享它

最佳答案

这不是一个答案,而是代码的可读版本:

awk -F"[        \t]" -v OFS="|" '
{ gsub(/^[ \t]+|[ \t]+$/,"");
gsub(/"/,"");
gsub(/[[:blank:]]+|\.|\-/,"",$32);
gsub(/[[:blank:]]+|\.|\-/,"",$13);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$38);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$42);
gsub(/^[[:space:]]+|[[:space:]]+$|\,/,"",$44);
gsub(/^[[:space:]]+|[[:space:]]+$/,"",$27);
gsub(/^[[:space:]]+|[[:space:]]+$/,"",$40);
gsub(/^[[:blank:]]+|[[:blank:]]+$/,"",$18);
}' # closing brace and quote were probably missing

关于linux - awk根据条件过滤文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108678/

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