首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用awk从变量的第三个实例中获取数据

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

Unix & Linux用户
提问于 2019-08-30 12:31:40
回答 2查看 59关注 0票数 0

我这里有两个要求:

我有一个类似于imp_1的变量,其值如下所示:

代码语言:javascript
复制
DI_DGF_PP_Cust_support
DI_DGF_PP_Call_Detail
DI_DGF_PP_Area

我想要"_“i.e上第三个实例的值

代码语言:javascript
复制
Cust_support
Call_Detail
Area

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

代码语言:javascript
复制
imp_2=`awk -F _ '{print $4}'` "$imp_1"

另外,

我想在其他变量imp_2中查找$imp_3- $imp_2的值。(减去结果)

前任:

$imp_2-

代码语言:javascript
复制
Cust_support
Call_Detail
Area

$imp-3

代码语言:javascript
复制
Cust_support
Call_Detail
Area
Call_detail
Finance_Detail
Marketing_Analysis

所以$imp_3 -$imp_2

代码语言:javascript
复制
Call_detail
Finance_Detail
Marketing_Analysis

检查了以下内容:

代码语言:javascript
复制
comm -3 <(echo "SDH") <(echo "ADP_DATA")

结果:

代码语言:javascript
复制
        ADP_DATA
SDH
EN

回答 2

Unix & Linux用户

发布于 2019-08-30 12:34:36

除了使用awk之外,使用cut要简单得多。只需定义分隔符和要解析的字段数。

代码语言:javascript
复制
imp_2=$(printf '%s\n' "$imp_1" | cut -d_ -f4-)
printf '%s\n' "$imp_2"

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

代码语言:javascript
复制
comm -3 <(echo "$imp_3") <(echo "$imp_2")
票数 2
EN

Unix & Linux用户

发布于 2019-09-01 16:18:47

下面是我为imp1尝试的尝试

代码语言:javascript
复制
echo $imp_1|awk -F "_" '{$1=$2=$3="";print $0}' |sed -r "s/^\s+//g"|sed -r "s/\s+$//g"|sed "s/ /_/g"

输出

代码语言:javascript
复制
Cust_support
Call_Detail
Area
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/538260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档