① sprintf(strcmd,"cat %s |grep '^START'|grep 'END$' |wc -l;",path);什麼意思
具體分析cat %s |grep '^START'|grep 'END$' |wc -l;這句話:
那個%s就是用後面的path來替換就不用說了,
先cat(顯示這個文件內容)這個path的文件,再傳給grep來過濾,第一個是選擇出以START開頭,前面^是正則表達式匹配文件頭的意思;接著再過濾出以END結尾的,最後wc(word count)-l表示只統計列數。
之後再把這個字元串給strcmd,後面估計就要執行strcmd了~
② unix中, grep IN是什麼意思 例如:cat $path/comb_file_$dt.log|grep IN|wc -l|read send_count
就是在comb_file_$dt.log日誌文件里找到包含IN的的行
然後再統計總共有多少行包含IN
最後將數字放在 send_count變數里
cat 讀取這個變數
③ linux輸出文件有幾列
linux輸出文件有幾列可以使用 cat filename | awk '{print NF}' 命令可以得到每一行對應有多少列。
例如文件a.txt的內容為:
你好 北京 天安門
1 2 3 4
1 2 3 4 5
輸入並執行cat a.txt | awk '{print NF}' 得出以下結果:
3
4
5
輸出結果分別代表第一行有3列,第二行有4列,第三行有5列。
1、Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。伴隨著互聯網的發展,Linux得到了來自全世界軟體愛好者、組織、公司的支持。
它除了在伺服器操作系統方面保持著強勁的發展勢頭以外,在個人電腦、嵌入式系統上都有著長足的進步。使用者不僅可以直觀地獲取該操作系統的實現機制,而且可以根據自身的需要來修改完善這個操作系統,使其最大化地適應用戶的需要。
2、AWK是一個優良的文本處理工具,Linux及Unix環境中現有的功能最強大的數據處理引擎之一。這種編程及數據操作語言的最大功能取決於一個人所擁有的知識。awk經過改進生成的新的版本nawk,gawk,現在默認linux系統下日常使用的是gawk,用命令可以查看正在應用的awk的來源(ls -l /bin/awk )
(3)cat過濾列數擴展閱讀:
linux主要特性:
1、完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
2、多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
3、良好的界面
Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
4、支持多種平台
Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
參考資料來源:
網路-Awk
網路-linux
④ matlab 如何把三維矩陣拼接
1、首先,定義A和B兩個2*2的矩陣。cat(維度,A,B)可以按照給定方向拼接矩陣。如圖使用cat(1,A,B)把這兩個矩陣豎著連起來。使用cat(2,A,B)把這兩個矩陣橫著連起來。
⑤ 怎麼用eclipse還有logcat命令的過濾log信息
在Eclipse中安裝ADT和android sdk包之後,運行以開發的android程序時,在LogCat窗口中會顯示出一系列的信息,這些信息是每一個程序通過Dalvik虛擬機所傳出的實時信息,可以方便我們對程序的了解。
在log窗口中,每條信息都包含五個部分,Time,標題空白,pid,tag和Message。
1、Time
表示執行的時間,這個信息對於學習生命周期,分析程序運行的先後順序特別有用。
2、標題空白的列
表示的是信息的種類,分為V,D,I,W,E五種。
V:verbose,顯示全部信息
D:Debug,顯示調試信息
I:Info,顯示一般信息
W:Warming,顯示警告信息
E:Error,顯示錯誤信息
可以通過點擊LogCat上面的用圓圈括起來的V,D,I,W,E來改變顯示的范圍。比如選擇了W,那就只有警告信息和錯誤信息可以顯示出來了。
3、pid
表示程序運行時的進程號
4、tag
標簽,通常表示系統中的一些進程名,比如我們運行helloworld程序的話,就會看到activitymanager在運行。
5、Message
表示進程運行時的一些具體信息,比如我們運行helloworld程序的話,就會看到starting activity...helloWorld的字樣
可以輸出LogCat的信息到文本文件中,以方便分析。在下拉框中選擇輸出選擇的信息就可以了。
下面是輸出到文件中的啟動helloWorld程序時的一條信息的例子,分別用5個下劃線標出了上面介紹的內容:
05-20 15:46:10.129: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.android.helloworld/.HelloWorld }
6、Filter的使用
可以在Filter中輸入篩選信息,使LogCat中只現實我們需要分析的信息。比如我們只想看和HelloWorld相關的信息,就可以在Filter中輸入HelloWorld,這樣只有Message中包含HelloWorld的內容才會顯示出來。
7、LogCat中信息不能顯示
上面說了這么多關於logCat的使用,可能LogCat中根本就什麼信息都沒有顯示!沒關系,只要在Eclipse中選擇window->show view->other->android->devices就可以了。
8、在LogCat中輸出程序的運行信息
a、在程序中導入相應的包
import android.util.Log;
b、在需要輸出信息的函數中增加相關的調試代碼
Log.i("hi world","oncreate");
方法i是Log類的靜態方法,可以直接使用,我們看著各類的定義可以看到,它提供了多種輸出方法,分別對應我們上面提到的V,D,I,W,E。用哪個方法就決定了輸出的類型,這里用i,表示輸出的是information。
這個方法中的第一個參數就是要顯示在Tag那一欄的內容,把這條語句加到OnCreate方法中,執行時LogCat中就會顯示如下的信息。
05-22 21:58:22.894 I 3910 hi world onCreate
9、創建新的Filter
有時候只想看我們程序中用Log類的相關方法輸出的各種信息,這時就可以考慮新建一個過濾器。點擊LogCat的右上角的「+」號,可以創建一個新的過濾器。比如我們在by Log Tag的選項中填入上面程序輸出的"hi world"這個tag。這樣再運行時在我們新創建的Filter中就只顯示hi world這個tag標記出來的信息了。
⑥ 如何過濾 adb logcat 命令的輸出
1. 只顯示需要的輸出,白名單
最方便的當然是通過管道使用 grep 過濾了,這樣可以使用 grep 強大的正則表達式匹配。簡單的匹配一行當中的某個字元串,例如 MyApp:
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小寫。
adb logcat | grep --color=auto -i myapp #設置匹配字元串顏色。更多設置請查看 grep 幫助。
進階一點可以使用 grep 的正則表達式匹配。例如上一個例子會匹配一行中任意位置的 MyApp,可以設置為僅匹配 tag。默認的 log 輸出如下,如果修改過輸出格式相應的表達式也要修改。
I/CacheService( 665): Preparing DiskCache for all thumbnails.
可以看出 tag 是一行開頭的第三個字元開始,根據這點寫出表達式:
adb logcat | grep "^..MyApp"
根據這個格式也可以設置只顯示某個優先順序的 log,再匹配行首第一個字元即可。例如僅顯示 Error 級別 tag 為 MyApp 的輸出:
adb logcat | grep "^E.MyApp"
當然也可以匹配多個,使用 | 分割多個匹配表達式,要加轉義符。例如要匹配 tag 為 MyApp 和 MyActivity 的輸出:
adb logcat | grep "^..MyApp\|^..MyActivity"
adb logcat | grep -E "^..MyApp|^..MyActivity" #使用 egrep 無須轉義符
2. 過濾不需要的輸出,黑名單
還是使用 grep,用法也跟上面的一樣,加一個 -v 即可。例如要過濾 tag 為 MyApp 和 MyActivity 的輸出:
adb logcat | grep -v "^..MyApp\|^..MyActivity"
adb logcat | grep -vE "^..MyApp|^..MyActivity" #使用 egrep 無須轉義符
3. 顯示同一個進程的所有輸出
有時一個程序裡面的 tag 有多個,需要輸出該程序(同一個 PID)的所有 tag;僅使用 tag 過濾有時也會漏掉一些錯誤信息,而一般錯誤信息也是和程序同一個 PID。還是通過 grep 實現,思路是先根據包名找到 pid 號,然後匹配 pid。寫成 shell 腳本如下,參數是程序的 java 包名(如 com.android.media)。
查看源代碼列印幫助
1 #!/bin/bash
2 packageName=$1
3 pid=`adb shell ps | grep $packageName | awk '{print $2}'`
4 adb logcat | grep --color=auto $pid
4. 從當前開始顯示
logcat 有緩存,如果僅需要查看當前開始的 log,需要清空之前的。
adb logcat -c && adb logcat
5. 過濾 log 文件
有時需要分析 log 文件,過濾 log 文件還是使用 grep。例如 log 文件為 myapp.log,要匹配 tag 為 MyApp 和 MyActivity 的輸出,然後輸出到 newmyapp.log:
cat myapp.log | grep "^..MyApp\|^..MyActivity" > newmyapp.log
Windows 下推薦使用 Notepad++,一個免費強大的記事本,支持正則表達式查找替換。可以高亮顯示匹配內容,也可以刪除不需要的內容。
以上的技巧主要用到了 grep,其實 logcat 本身也有過濾功能,可以根據 tag、優先順序過濾 log,具體請參考 Android 官方文檔 Reading and Writing Logs。如果喜歡使用圖形界面,請參考 Using DDMS,DDMS 裡面的 logcat 也可以同樣過濾。
⑦ Matlab命令 cat
com=cat(2,'!md
',shot);
%%cat函數用於連接兩個矩陣或數組,第一個參數表示按第幾維進行連接,1表示第一維,即行向,也即垂直方向;2表示第二維,及列向,也即水平方向;示例如下:
>>
com=cat(2,'!md
','shot')%%列向,即水平
com
=
!md
shot
>>
com=cat(1,'!md
','shot')%%行向,即垂直
com
=
!md
shot
shot=『aa』;
com=cat(2,'!md
',shot);
eval(com);
這段代碼執行後會新建一個文件夾,可能是因為'!md』這個字元串的關系,這個我也不怎麼清楚,樓主你在哪找的代碼。
希望對你有所幫助,有問題再說啊
⑧ linux查看文件內容命令
常用的7個Linux文件內容查看命令:
1.cat由第一行開始顯示文件內容
用法:
cat-A 相當於-vET的整合選項,可列出一些特殊字元而不是空白;
cat-b 列出行號,僅針對非空白行做行號顯示,空白行不標行號;
cat-E 將結尾的斷行位元組$顯示出來;
cat-n 列印出行號,連同空白行也會有行號,與-b的選項不同;
cat-T 將[tab]按鍵以^I顯示出來;
cat-v 列出一些看不出來的特殊字元;
2.tac 由最後一行開始顯示文件內容
tac-b 在行前而非行尾添加分隔標志;
tac-r 將分隔標志視作正則表達式來解析;
tac-s 使用指定字元串代替換行作為分隔標志;
3.nl 顯示行號
nl-b a 無論是否為空行,均列出行號;
nl-b t 空行不列出行號;
nl-n ln 行號在熒幕的最左方顯示;
nl-n rn 行號在自己欄位的最右方顯示,且不加0;
nl-n rz 行號在自己欄位的最右方顯示,且加0;
nl-w 行號欄位的佔用的位數;
4.more 一頁一頁的顯示文件內容
在more程序運行過程中,可以按以下鍵:
空白鍵(space):代表向下翻一頁;
Enter:代表向下翻『一行』;
/字串:代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
:f:立刻顯示出檔名以及目前顯示的行數;
q:代表立刻離開more,不再顯示該文件內容。
b或[ctrl]-b:代表往回翻頁,不過這動作只對文件有用,對管線無用。
5.less與more類似,但是比more更好的是,他可以往前翻頁
less運行時可以輸入的命令有:
空白鍵:向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup]:向上翻動一頁;
/字串:向下搜尋『字串』的功能;
?字串:向上搜尋『字串』的功能;
n:重復前一個搜尋(與/或?有關!);
N:反向的重復前一個搜尋(與/或?有關!);
q:離開less這個程序;
6.head 顯示前幾行
語法:
head-n 後面接數字,代表顯示行數;
7.tail 顯示後幾行
tail-n 後面接數字,代表顯示行數;
tail-f 表示持續偵測後面所接的檔名,要等到按下[ctrl]-c才會結束tail的偵測;
⑨ MATLAB請教:a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2])
cat函數為構造矩陣函數。
在a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2]) 中
左括弧後的3表示構造出的矩陣維數為3;在新的矩陣中第1、2維就是
[1 2 3 4;5 6 7 8]和[9 8 7 6;5 4 3 2]這兩個矩陣的行數和列數,
第3維是[1 2 3 4;5 6 7 8]和[9 8 7 6;5 4 3 2]這兩個矩陣的矩陣個數,即為2。
打個簡單的比方,cat就像一個撲克盒,里頭裝了紅心2和方塊2兩張牌,而撲克牌的點數、花色以及張數便構成了撲克盒這個「三維矩陣」。
不知道羅哩羅嗦了這么多,解釋清楚了么?