Unix 使用cut命令将两条回显线合并为一行

Unix 使用cut命令将两条回显线合并为一行,unix,echo,line,cut,Unix,Echo,Line,Cut,现在我分别打印两行,我需要用单行打印 echo $line cut -d "/" -f5 echo $line | cut -d "/" -f9 f5 --> domain_name f9 --> service_name 我需要在单行中同时使用f5和f9值 echo $line cut -d "/" -f5 echo $line | cut -d "/" -f9 f5 --> domain_name f9 --> service_name 预期产出: dom

现在我分别打印两行,我需要用单行打印

echo $line cut -d "/" -f5 
echo $line | cut -d "/" -f9
f5 --> domain_name
f9 --> service_name
我需要在单行中同时使用f5和f9值

echo $line cut -d "/" -f5 
echo $line | cut -d "/" -f9
f5 --> domain_name
f9 --> service_name
预期产出:

domain_name service_name
domain_name service_name
domain_name service_name
domain_name service_name

man cut
教育我们:

-f, --fields=LIST
       select  only  these  fields;   also print any line that contains 
       no delimiter character, unless the -s option is specified
因此,在下列情况下使用逗号:

$ cut -d / -f 5,9 file 
这是正确的答案。但是,输出分隔符也将是
/

domain_name/service_name
除非你单独定义它<代码>人工切割,我们来了:

--output-delimiter=STRING
       use STRING as the output delimiter the default is to use the input delimiter
因此:

应输出:

domain_name service_name

您也可以通过
awk
命令来实现这一点:

echo $line | awk -F"/" '{ print $5,$9 }'

-F
:用于选择分隔符,在本例中为
/
。然后我们将打印第5列和第9列。

哦,是的,您将数据保存在一个变量中,我使用了一个文件进行测试。嗯,它是
echo$line | cut-d/-f5,9--输出定界符=“”
。你的输入比它有效,但在5和9之间包括“/”。嗯,它当然不应该是因为
--输出定界符=“”
。如果它提到那个开关,你能检查一下你的系统上的
手动剪切吗。@balajibalehead欢迎你。如果你愿意,你可以接受它作为一个有效的答案,这样它可以帮助其他用户。谢谢