【问题标题】:Append Output results追加输出结果
【发布时间】:2014-04-04 14:51:41
【问题描述】:

我正在运行一个验证软件,我希望将所有输​​出发送到一个文本文件,并将多个文件的结果放置/附加到同一个文件中。我以为我的代码可以正常工作,但我发现我只能从 1 个文件输出到文本文件中获取结果。

java -jar /Applications/epubcheck-3.0.1/epubcheck-3.0.1.jar ~/Desktop/Validator/*.epub 2>&1 | tee -a ~/Desktop/Validator/EPUBCHECK3_results.txt

open ~/Desktop/Validator/EPUBCHECK3_results.txt

编辑

当我使用 Windows 命令行运行相同的 .jar 文件时,它将处理一批文件并适当地显示结果。我会这样做,但这意味着必须切换工作站并传输文件以验证它们。我想让它通过我的 Mac 系统上的 Unix shell 运行,这样我就不必做不必要的工作。在下面工作的命令行:

FOR /f %%1 in ('dir /b "C:\Users\scrawfo\Desktop\epubcheck\drop epubs here\*.epub"') do (
echo %%1 >> epubcheck.txt
java -jar "C:\Users\scrawfo\Desktop\epubcheck\epubcheck-3.0.jar" "C:\Users\scrawfo\Desktop\epubcheck\drop epubs here\%%1" 2>> epubcheck.txt
echo. >> epubcheck.txt)
notepad epubcheck.txt
del epubcheck.txt

【问题讨论】:

  • 以前从未见过 open 在 shellscript 中使用过。你只是想打印文件的内容吗?如果是这样,只需使用cat
  • 在运行 .jar 验证后,我实际上是在调用以打开文本文件。
  • 你正在做的应该工作。也许问题出在其他地方。
  • @WilliamPursell 我刚刚编辑了我的问题。相同的 JAR 使用命令行在 Windows 上完美运行。我只是在尝试通过 Unix 时遇到问题

标签: shell unix tee


【解决方案1】:

您提供的语法是正确的,可能是 java 输出有问题,或者尝试在不重定向的情况下执行它

cat test

输出:-

这是测试文件......

下一个执行的命令,语法相同

ps l 2>&1 | tee -a test

输出:-

F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME 命令 4 0 3287 1 20 0 4060 572 n_tty_ Ss+ tty2
0:00 /sbin/mingetty /dev/tty2 4 0 3289 1 20 0 4060 572 n_tty_ Ss+ tty3 0:00 /sbin/mingetty /dev/tty3 4 0 3291
1 20 0 4060 576 n_tty_ Ss+ tty4 0:00 /sbin/mingetty /dev/tty4 4 0 3295 1 20 0 4060 576 n_tty_ Ss+ tty5
0:00 /sbin/mingetty /dev/tty5 4 0 3297 1 20 0 4060 572 n_tty_ Ss+ tty6 0:00 /sbin/mingetty /dev/tty6 4 0 19086
1 20 0 4060 572 n_tty_ Ss+ tty1 0:00 /sbin/mingetty /dev/tty1 4 0 20837 20833 20 0 108432 2148 等待 Ss pts/0
0:00 -bash 4 0 21471 20837 20 0 108124 1036 - R+ pts/0 0:00 ps l 0 0 21472 20837 20 0 100908 664 pipe_w S+ pts/0
0:00 开球 - 测试

已检查文件

cat test

输出:-(正确附加)

这是测试文件......

F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY 时间命令 4 0 3287 1 20 0 4060 572 n_tty_ Ss+ tty2 0:00 /sbin/mingetty /dev/tty2 4 0 3289 1 20 0 4060 572 n_tty_ Ss+ tty3 0:00 /sbin/mingetty /dev/tty3 4 0 3291
1 20 0 4060 576 n_tty_ Ss+ tty4 0:00 /sbin/mingetty /dev/tty4 4 0 3295 1 20 0 4060 576 n_tty_ Ss+ tty5
0:00 /sbin/mingetty /dev/tty5 4 0 3297 1 20 0 4060 572 n_tty_ Ss+ tty6 0:00 /sbin/mingetty /dev/tty6 4 0 19086
1 20 0 4060 572 n_tty_ Ss+ tty1 0:00 /sbin/mingetty /dev/tty1 4 0 20837 20833 20 0 108432 2148 等待 Ss pts/0
0:00 -bash 4 0 21471 20837 20 0 108124 1036 - R+ pts/0 0:00 ps l 0 0 21472 20837 20 0 100908 664 pipe_w S+ pts/0
0:00 开球 - 测试

【讨论】:

  • 我在没有将输出重定向到另一个文件的情况下运行了该命令,它仍然只评估目录中的一个文件。我需要做的是评估目录中的所有 *.epub 文件并为我提供所有文件的输出
  • 你能分享一下输出吗
  • Epubcheck 版本 3.0.1 验证 EPUB 版本 2.0 错误:/Users/scrawfo/Desktop/Validator/?????????????.epub/OEBPS/toc.ncx (21,45):断言失败:navPoint/navTarget/pageTarget 的不同 playOrder 值引用相同的目标错误:/Users/scrawfo/Desktop/Validator/???????????????.epub/ OEBPS/toc.ncx(27,45):断言失败:navPoint/navTarget/pageTarget 的不同 playOrder 值引用相同的目标检查完成时出现警告或错误
猜你喜欢
  • 2016-01-29
  • 2012-03-23
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2017-04-27
  • 2016-08-26
相关资源
最近更新 更多