【问题标题】:Extract Columns from file and print to new file with delimiter Shellscript从文件中提取列并使用分隔符 Shell 脚本打印到新文件
【发布时间】:2017-10-10 23:59:57
【问题描述】:

我想打印具有相同分隔符的分隔文件的 1、2、3、6 列。分隔符是 1e(十六进制)或 036(八进制)。这是 bashscript。我从帖子中读到我的尝试是这样做的好方法:

awk 'BEGIN{OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt

当我这样做时,该文件包含源文件中的所有内容。想看看我做错了什么。下面我有一些示例输入和输出。实际文件有很多记录。 ^^ 是 1e(十六进制)或 \036(八进制)的表示形式。

输入:

Q001^^bob123^^001^^X^^ ^^^^ ^^               ^^TX^^B^^ ^^   ^^2^^10

输出:

Q001^^bob123^^001

【问题讨论】:

  • 请在代码标签中发布示例输入和预期输出。

标签: bash shell unix awk


【解决方案1】:

OFSoutput 字段分隔符,而不是 input 字段分隔符。您还必须设置FS

awk 'BEGIN{FS=OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 2019-03-24
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2021-01-25
    • 1970-01-01
    相关资源
    最近更新 更多