如何在awk中添加结束方括号

如何在awk中添加结束方括号,awk,Awk,我想把我输入的每一行都用方括号括起来。我可以添加开头的方括号。但不是结局。结尾“]”转到下一行并剪辑该行 e、 这是我的剧本- cat file.csv | awk 'BEGIN {FS=","; OFS=","} {print $1,"["$6,$7"]"}' op是-]ABC、[CD、EF 谢谢看起来这可能是一个行尾问题,因为您的行是通过CR/LF(回车和换行)终止的,而不仅仅是LF本身。实际输出的是: ABC,[CD,EF<CR>] 如果^M实际上是CR字符,请使用CTRL

我想把我输入的每一行都用方括号括起来。我可以添加开头的方括号。但不是结局。结尾“]”转到下一行并剪辑该行

e、 这是我的剧本-

cat file.csv | awk 'BEGIN {FS=","; OFS=","} {print $1,"["$6,$7"]"}'
op是-]ABC、[CD、EF


谢谢

看起来这可能是一个行尾问题,因为您的行是通过
CR/LF
(回车和换行)终止的,而不仅仅是
LF
本身。实际输出的是:

ABC,[CD,EF<CR>]
如果
^M
实际上是
CR
字符,请使用
CTRL-V
CTRL-M
输入

至于如何修复它,您可以修复文件本身以消除不可靠的行尾,也可以在行的最后一个字段上使用类似于
gsub
的内容来消除
CR
字符:

pax> # this bit here ----------vvvvvvvvvvvvvvvv
pax> awk -v x='abcdef^M' 'END {gsub("^M","",x);print "123 ["x"]"}' </dev/null
123 [abcdef]
注意,
cat file.csv
在这里是完全没有必要的,因为
awk
本身完全能够处理文件名。我自己,如果可能的话,我更愿意修复文件


关于修复所述文件的多种方法(取决于您可用的工具),请参阅。

看起来这可能是一个行尾问题,因为您的行尾是使用
CR/LF
(回车和换行),而不仅仅是
LF
。实际输出的是:

ABC,[CD,EF<CR>]
如果
^M
实际上是
CR
字符,请使用
CTRL-V
CTRL-M
输入

至于如何修复它,您可以修复文件本身以消除不可靠的行尾,也可以在行的最后一个字段上使用类似于
gsub
的内容来消除
CR
字符:

pax> # this bit here ----------vvvvvvvvvvvvvvvv
pax> awk -v x='abcdef^M' 'END {gsub("^M","",x);print "123 ["x"]"}' </dev/null
123 [abcdef]
注意,
cat file.csv
在这里是完全没有必要的,因为
awk
本身完全能够处理文件名。我自己,如果可能的话,我更愿意修复文件


有关修复所述文件的多种方法(取决于您可用的工具),请参阅。

您的代码可以正确输入,例如:

$ echo {A..J} | sed 's/ /,/g' | awk 'BEGIN {FS=","; OFS=","} {print $1,"["$6,$7"]"}'
A,[F,G]
正如migthy@paxdiablo所说的,可能是一个行尾问题。请使用-命令检查


要转换为正确的行尾,请使用或
dos2unix

您的代码使用正确的输入,例如:

$ echo {A..J} | sed 's/ /,/g' | awk 'BEGIN {FS=","; OFS=","} {print $1,"["$6,$7"]"}'
A,[F,G]
正如migthy@paxdiablo所说的,可能是一个行尾问题。请使用-命令检查


要转换为正确的行尾,请使用例如或
dos2unix

awk是正确的,问题出在文件上,如@paxdiablo所说,运行
dos2unix file.csv
来解决行尾问题。旁注:删除。awk是正确的,问题出在文件上,如@paxdiablo所说,运行
dos2unix file.csvde>以解决行结束问题。旁注:删除。