gpt4 book ai didi

linux - 从分隔文件中提取特定列(长行到下一行)

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

想要从 unix 中的分隔文件(分隔符“||”)中提取 2 列,如果将完整的行放在一行中,如下所示,可以轻松完成

foo||bar||baz||quux

cut -d'||' -f1 file_name

但就我而言,文件中单行记录的记录转到下一行,例如:

foo||bar||baz||quux||foo||bar||baz||quux||foo||bar||baz||quux
||quux||bar||baz||quux||foo||bar||baz||quux||foo||bar||baz||quux

上面命令的输出是

foo
quux

应该只是“foo”,因为它位于第一列。

文件包含在第 1 行

foo||bar||baz||quux||foo||bar||baz||quux||foo||bar||baz||quux
||quux||bar||baz||quux||foo||bar||baz||quux||foo||bar||baz||quux

文件包含在第 2 行

foo2||bar2||baz2||quux2||foo2||bar2||baz2||quux2||foo2||bar2||baz2||quux2
||quux2||bar2||baz2||quux2||foo2||bar2||baz2||quux2||foo2||bar2||baz2||quux2

输出应该是

foo
foo2

最佳答案

几乎,但是-d开关只需要一个字符:

cut -d'|' -f1 file_name

输出:

foo
foo2
<小时/>

注意:由于分隔符加倍,如果字段编号大于 1-f 开关将无法按预期工作。处理该问题的一种方法是将字段调整为等于“2n-1”。因此,要获取字段 #3,请执行 -f$(( (3*2) - 1 ))

关于linux - 从分隔文件中提取特定列(长行到下一行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43845026/

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