我有一些文件需要使用 unix 排序实用程序进行附加和排序。然后我们将使用Java来处理排序后的文件。
最初我想使用 bash shell 脚本来进行排序,在脚本文件的后面部分,我调用 Java 程序。但我担心的是shell脚本没有成熟的日志库,只能重定向输出流和错误流。
如果我想让日志看起来更好,我应该使用 Runtime.exec() 来调用 Java 中的 bash shell 脚本部分,以便我可以记录它们吗?
以下是shell脚本文件:
cd /home/app/xyz/data
echo -n "Total number of files: "
ls | wc -l
for file in ls ABC_*.DAT
do
echo "Appending" $file "..."
cat $file >> /home/app/xyz/data/unsorted.DAT
echo "Moving" $file "to back up folder..."
mv $file /home/app/xyz/data/backup
done
sort -t ',' -k 1,1 -k 5,7 -k 2,2r unsorted.DAT -o sorted.DAT
CALL JAVA_PROGRAM sorted.DAT
最佳答案
恕我直言,如果您想使用 Java,您应该将此脚本逻辑重写为 Java 以提高可移植性。这是一个简短的脚本,所以不会很困难。您可以在这里查看:Optimal way to sort a txt file in Java 。
但这取决于场景和用例。可以编写具有良好日志记录的脚本;)
关于java - 我应该使用 Runtime.exec() 来调用 bash shell 脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6675391/