我試圖用「comm」來比較2個文件,並保存它們之間的區別是在第三個文件中,如下面的示例。通用命令和diff命令上的Bash Shell Systax錯誤
if [ -e "$updated_file_name_$day$month$year.txt"];
then
comm -3 < (sort $updated_file_name".txt") < (sort $updated_file_name_$day$month$year.txt) > $updated_file_name_$day$month$year_V$i.txt
else
mv $updated_file_name".txt" $updated_file_name_$day$month$year.txt
fi
它搜索或文件的以前版本,如果它發現它比這兩個文件都應該進行分類和比較,比的結果將被保存在第三個文件,否則它只是保存新文件作爲該日期的原始文件。
我在shell控制檯上用它作爲「bash -c'comm -3 [命令的其餘部分]」,它工作正常,但無論出於何種原因,它在我的腳本上不工作,我總是得到錯誤的語法錯誤。
我也用「差異,而不是‘COMM嘗試’,但我得到同樣的,我不`噸知道是什麼問題
以下是錯誤消息:
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `diff < (sort $updated_file_name".txt") < (sort $updated_file_name"_"$day$month$year.txt) > $updated_file_name"_"$day$month$year_V$i".txt"'
說什麼錯誤消息的變量? – suleiman
問題已更新。 –
我相信流程替代是沒有空格的。也許'<(command)'而不是'<(command)'? – odradek