ksh中的数组和定界符

我的命令的结果是:

> htnnpjhuhj.jbjbnljnkn:tcp:ssh xxx.12234.r444:44056  
> ftpddddddd.jbfffdnkn:tcp:ssh xxx.122555.r674:44067

我试图仅获取定界符“:”之前每行中的第一个元素,也就是说,我试图获取htnnpjhuhj.jbjbnljnknftpddddddd.jbfffdnkn。请在下面告诉我我的代码出了什么问题。

function myfunc 
{    
   command=$(command)
   IFS=":" read -rA RESULTS <<< $command
   echo ${RESULTS[0]}

}

change124864 回答:ksh中的数组和定界符

假设所需的输出如下:

htnnpjhuhj.jbjbnljnkn
ftpddddddd.jbfffdnkn

有几种方法可以完成此任务... cutsedawk ...问题中提到的基于数组的解决方案。

(对我来说)尚不清楚该函数将如何被使用,并且由于数组是一个临时的/丢弃的结构(即,在显示数组的内容之后,该数组在{{ 1}}转到父流程),我将看一些更直接的内容。

这是一个return解决方案,它基于两个可能的定界符(awkspace)来解析输入:

:

如果打算将所有值放在一行上,那么我们可以在$ cat rawdata > htnnpjhuhj.jbjbnljnkn:tcp:ssh xxx.12234.r444:44056 > ftpddddddd.jbfffdnkn:tcp:ssh xxx.122555.r674:44067 $ awk -F"[ :]" '{print $2}' rawdata htnnpjhuhj.jbjbnljnkn ftpddddddd.jbfffdnkn 代码中添加更多内容,例如:

awk

注意:这确实在输出的末尾放置了额外的空格。

同样,有很多方法可以对此进行切片,但是我们需要OP提供更多有关所需输出以及以后是否使用输出的详细信息。

本文链接:https://www.f2er.com/2827838.html

大家都在问