传递“|”作为 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
我写了一个通用的 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