strings 命令在 Linux 系統(tǒng)中用于從二進(jìn)制文件中檢索可打印的字符序列。它對(duì)于解析二進(jìn)制文件(例如應(yīng)用程序、庫(kù)或非純文本文件)十分實(shí)用,因?yàn)樗軌驇椭惆l(fā)現(xiàn)文件內(nèi)包含的文本信息,比如錯(cuò)誤提示、函數(shù)名稱等。
下面是一些使用 strings 命令操作文本文件的基本實(shí)例:
基礎(chǔ)用法
-
提取字符串
strings 文件名
此命令會(huì)從文件名所指的文件中提取所有的可打印字符串。
-
設(shè)定最小字符串長(zhǎng)度
默認(rèn)設(shè)置下,strings 命令會(huì)提取長(zhǎng)度不少于 4 的字符串。你可以利用 -n 參數(shù)來(lái)定義其他的最小長(zhǎng)度。
strings -n 6 文件名
這個(gè)命令只會(huì)提取長(zhǎng)度至少為 6 的字符串。
-
輸出至文件
你可以把 strings 命令的結(jié)果導(dǎo)向到一個(gè)文件里。
strings 文件名 > 輸出.txt
-
與其他命令配合使用
strings 命令常常與別的命令(如 grep)聯(lián)合運(yùn)用,以便進(jìn)一步篩選或處理提取出來(lái)的字符串。
strings 文件名 | grep "錯(cuò)誤"
這個(gè)命令會(huì)從文件名所指的文件中提取所有含有 “錯(cuò)誤” 的字符串。
高級(jí)用法
-
指定輸出格式
strings 命令支持多種輸出格式,包括 ASCII 和 UTF-8。你可以借助 -e 參數(shù)來(lái)確定輸出格式。
strings -e UTF-8 文件名
-
展示字符串的位置
默認(rèn)狀態(tài)下,strings 命令會(huì)顯示每個(gè)字符串的起始位置。你可以用 -a 參數(shù)來(lái)顯示位置。
strings -a 文件名
-
限制輸出行數(shù)
如果你僅想查看提取出的字符串的前幾行,可以使用 head 命令。
strings 文件名 | head
-
結(jié)合 sort 和 uniq 使用
若你想查看提取出的字符串中哪些是獨(dú)一無(wú)二的,可以結(jié)合使用 sort 和 uniq 命令。
strings 文件名 | sort | uniq
借助這些基礎(chǔ)和高級(jí)用法,你可以自由地運(yùn)用 strings 命令來(lái)處理和分析文本文件中的可打印字符串。