使用 awk 从变量 _ 的第三个实例获取数据

使用 awk 从变量 _ 的第三个实例获取数据

我这里有两个要求:

我有一个像这样的变量imp_1其价值如下:

DI_DGF_PP_Cust_support
DI_DGF_PP_Call_Detail
DI_DGF_PP_Area

我想要“第三个实例的值”_“ IE

Cust_support
Call_Detail
Area

我正在使用下面的但它不起作用。

imp_2=`awk -F _ '{print $4}'` "$imp_1"

还,

我想寻找的价值imp_2在其他一些变量中$imp_3得到$imp_3- $imp_2.(减去结果)

例如:

$imp_2-

Cust_support
Call_Detail
Area

$imp-3

Cust_support
Call_Detail
Area
Call_detail
Finance_Detail
Marketing_Analysis

所以$imp_3 -$imp_2

Call_detail
Finance_Detail
Marketing_Analysis

检查了以下内容:

comm -3 <(echo "SDH") <(echo "ADP_DATA")

结果:

        ADP_DATA
SDH

答案1

与 using 一起awk,使用cut变得更加简单。只需定义分隔符和要解析的字段数量

imp_2=$(printf '%s\n' "$imp_1" | cut -d_ -f4-)
printf '%s\n' "$imp_2"

对于imp_3 - imp_2,即两个变量之间的非唯一行,请使用comm实用程序

comm -3 <(echo "$imp_3") <(echo "$imp_2")

答案2

以下是我为 imp1 尝试的尝试

echo $imp_1|awk -F "_" '{$1=$2=$3="";print $0}' |sed -r "s/^\s+//g"|sed -r "s/\s+$//g"|sed "s/ /_/g"

输出

Cust_support
Call_Detail
Area

相关内容