Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从文件中提取列并使用分隔符Shellscript打印到新文件_Bash_Shell_Unix_Awk - Fatal编程技术网

Bash 从文件中提取列并使用分隔符Shellscript打印到新文件

Bash 从文件中提取列并使用分隔符Shellscript打印到新文件,bash,shell,unix,awk,Bash,Shell,Unix,Awk,我想用相同的分隔符打印带分隔符文件的1,2,3,6列。分隔符为1e(十六进制)或036(八进制)。这是bashscript。我从帖子上读到我的尝试是一个很好的方法: awk 'BEGIN{OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt 执行此操作时,文件包含源文件中的所有内容。看看我做错了什么。下面我有一些示例输入和输出。实际文件有许多记录。^^^表示1e(十六进制)或\036(八进制) 输入: Q001^^bob123^^0

我想用相同的分隔符打印带分隔符文件的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
OFS
是输出字段分隔符,而不是输入字段分隔符。您还必须设置
FS

awk 'BEGIN{FS=OFS="\036"} {print$1,$2,$3,$6}' filename > newfile.txt
OFS
是输出字段分隔符,而不是输入字段分隔符。您还必须设置
FS

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

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