传递“|”作为 unix 脚本的参数

Passing "|" as an argument to unix script

我写了一个通用的 unix 脚本来从任何 csv.Now 加载 oracle table csv 中的定界符(字段分隔符)可以是','或'|"或': ' ETC。 因此,我试图将定界符作为参数显式传递给脚本,并且它对大多数定界符都能正常工作,但是当我试图传递 |然后它没有给我正确的结果,因为它正在隐式转换 |到 ,

ksh -x myscript csv_name |

# 不工作

ksh -x myscript csv_name , 

# 工作

如果有用于此的转义,请建议我?

在我的机器上测试过,你需要使用下面的命令 -

ksh -x test.sh file "|"

ksh -x test.sh file \|

ksh -x test.sh file '|'

我们需要禁用“|”的功能使用转义、单引号或双引号。

Testing -

cat file
A|B|B|A
A|A|A
B|A|B|A
B|B
A|A
A|B
A|A|B

cat test.sh
vFile=
sep=
awk -F "$sep" '{print ,}' ${vFile}

ksh -x test.sh file "|"
A B
A A
B A
B B
A A
A B
A A