【发布时间】:2017-10-06 07:14:00
【问题描述】:
想要从分隔文件中提取 2 列 (delimiter '||') 如果在一行中像下面这样完整的行,可以很容易地在 unix 中完成
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
【问题讨论】:
-
亲爱的,请把它编辑成可读的格式。
-
我试图重申我错误理解的问题!
-
Re "错误理解":如果你运行的是 Linux,那么
cut命令来自 GNU coreutils我>。但是 GNU 的cut -d '||'返回错误“cut: the delimiter must be a single character”,这意味着显示的 OP 代码一定不准确。如果这是真的,那么请更正帖子以显示正在运行的实际代码。
标签: linux shell unix awk scripting