首页 文章

UNIX 'join'命令在意外令牌附近引发语法错误`(''

提问于
浏览
1

我在UNIX中遇到'join'命令 .

要求:尝试通过在连接命令中嵌入排序来比较具有相似元数据的两个文件 .

执行:

以下命令在命令行中顺利运行:

join -v 2 <(sort file1) <(sort file2) >difference.file

但是当我们将这个嵌入shell脚本中时,如下所示会抛出语法错误:

脚本名称:join.sh

脚本内容:

#!/bin/bash
join -v 2 <(sort file1) <(sort file2) >difference.file
#EndOfScript

错误信息 :

./join.sh: line 1: syntax error near unexpected token `('
./join.sh: line 1: `join -v 2 <(sort file1) <(sort file2) >difference.file'

类似的查询是针对 commsort 命令提出的,但这对 join 没有帮助

Bash script using COMM and SORT issues syntax error near unexpected token

2 回答

  • 3

    你可能正在运行脚本

    sh join.sh
    

    这将调用 /bin/sh 可执行文件,该文件与bash特定语法(此示例中的进程替换)不兼容 .

    运行脚本

    ./join.sh
    

    要么

    bash join.sh
    

    它应该按预期工作 .

  • 0

    我给你一个替代选择 . 你可以尝试这个: -

    sort file1 > file1.dat
     sort file2 > file2.dat
     join -v 2 file1.dat file2.dat > difference.file 
     rm -rf file1.dat file2.dat
    

相关问题