2014-09-24 83 views
1

我知道關於>>>,但不能捕獲下面的代碼輸出。 我有3個文件,我想使用CAT一個接一個地打開文件。 我會使用GREP搜索特定的字符串/消息,如果找到PASS其他FAIL。 代碼正在工作,但無法在文件中獲得輸出。外殼捕捉輸出文件使用>和>>

XXXXXXXXXX/XXX/XXX/postprocessing$ ls 
demo.txt tag.txt tc1_adblog.txt tc2_adblog.txt tc3_adblog.txt 


XXXXXXXXXX/XXX/XXX/postprocessing$ cat tc1_adblog.txt | grep 'ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9}' && echo "Test case 1: Pass" || echo "Test case 1: FAIL" >> result.txt 
I/Timeline(1002): Timeline: Activity_windows_visible id: ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9} time:12020671 
Test case 1: Pass 


XXXXXXXXXX/XXX/XXX/postprocessing$ ls 
demo.txt tag.txt tc1_adblog.txt tc2_adblog.txt tc3_adblog.txt 

回答

0

>> result.txt只被||之後施加到echo。您需要組整個命令是這樣的:

s='ActivityRecord{4306a670 u0 com.example.android.notepad/.NotesList t9}' 
{ grep -qF "$s" tc1_adblog.txt && echo "Test case 1: Pass" || echo "Test case 1: FAIL"; } >> result.txt 
  • 使用grep -F匹配固定字符串
  • 使用grep -q避免grep的輸出
  • 避免無用的cat
+0

它工作正常。 thannks – 2014-09-24 08:33:11

0
&& echo "Pass" >> result.txt || echo "Fail" >> result.txt 

(grep "string" && echo "Pass" || echo "Fail") >> result.txt