查看文本
顯示文本的前面10行,和後面10行
head -10 log.txt
tail -10 log.txt
也可以作爲管道命令
cat log.txt | head -10
動態顯示文本
tail -f log.txt
以不同的編碼格式顯示出來,如16進制
hexdump -e ’ [iterations]/[byte_count] “[format string]” ‘
注:hexdump的格式命令模式如下: iterations表示一行顯示多少個,byte_count表示幾個字節組合在一塊,在format string要對應上字節的數目
例子如下:
hexdump -v -e '6/4 "0x%08x, "' -e '"\n"' log.txt | less
輸出的每一行類似如下,6個一組, 每個4個字節 ,使用less可以動態查看
0x3d3d3d3d, 0x3d3d3d3d, 0x3d3d3d3d, 0x3d3d3d3d, 0x3d3d3d3d, 0x3d3d3d3d,
對比輸出
hexdump -C log.txt
結果:
00002990 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================|
注:後面這些等號即是前面這些字節的對比輸出, 最前面有一個文件偏移量
另外可以將不顯示字符以點代替輸出對比
hexdump -e ‘16/1 “%02X ” ” | “’ -e ‘16/1 “%_p” “\n”’ log.txt
結果:
20 20 20 20 20 20 20 20 20 0A 3D 3D 3D 3D 3D 3D | .======
3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D | ================
具體hexdump使用和詳情可參照下面兩篇博客1,2
注:hexdump除了可以輸出16進制,也可以輸出2,8,10等其他進制
其他一些編碼輸出工具:
xxd
od
文本比較
常用diff命令
例子:
diff log2013.log log2014.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2013-03 | 2014-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-08 | 2013-07
2013-09 2013-09
2013-10 2013-10
> 2013-11
> 2013-12
說明:
“|”表示前後2個文件內容有不同
“<”表示後面文件比前面文件少了1行內容
“>”表示後面文件比前面文件多了1行內容
具體diff如何使用,請查看這篇文章
文本編輯
替換
直接用sed命令
sed -i "s/old/new/g" log.txt
有的時候在windows和linux中同時編輯過的文件會出現下面這個問題:
對於換行,window下用回車換行(0A0D)來表示,linux下是回車(0A)來表示。這樣,將window上的文件拷到unix上用時,總會有個^M.
注:^V和^M指的是Ctrl+V和Ctrl+M。你必須要手工進行輸入,而不是粘貼。
使用vi 進行替換 :%s/^M$//g
使用tr進行刪除
cat filename | tr -d “^M” > newfile
使用sed 屏幕編輯模式
sed -e “s/^M//” filename > newfile
注:sed命令將單獨給例子
合併用cat
cat text1.txt text2.txt text3.txt > newfile
合併去重複
去重複經常在字典中用到,比如說去破解wifi密碼,有好幾個字典,這時候可以把字典合併起來,然後幹掉重複的。
將文件夾下面的文件全部合併去重複
cat * | sort | uniq > uniq.txt
提取重複,反向排序,去掉首字目包含空格的行
cat * | sort | uniq -d -c | sort -r | sed -e 's/^ *//' > dup.txt
不獲取重複的
cat * | sort | uniq -u > uniq.txt
編寫內容 vi
注:將單獨寫例子
查找文本
常用grep ,egrep
注:grep將單獨寫例子
查找log日誌裏面,有test後面跟空格的文本
cat log.txt | egrep 'test[ ]'
簡單的查找 less命令來幫忙
進入less界面後,很多命令都與vi的命令類似
查找輸入 /str_want_to_find
注:(區分大小寫)
如果想去掉大小寫區分:
先輸入-i ,再輸入斜槓進行查找
每找到一個可以按下n 跳到下一個