linux查看文件具體内容命令?# 在目錄下查找文件并打印路徑,子目錄也會查找
find /home/test -name test.sh -print
12
,現在小編就來說說關于linux查看文件具體内容命令?下面内容希望能幫助到你,我們來一起看看吧!
linux查看文件具體内容命令
一、find 查找命令
# 在目錄下查找文件并打印路徑,子目錄也會查找
find /home/test -name test.sh -print
12
命令選項:
- -name 按照文件名查找
- -perm 按照文件權限來查找文件
- -prune 不在當前指定的目錄查找。如果同時使用了-depth,那-prune會被忽略
- -user 按文件屬主來查找文件
- -group 按所屬組來查找文件
- -mtime -n n 按照文件更改時間來查找文件
- -nogroup 查找無有效所屬組的文件,即在該所屬組在/etc/groups中不存在
- -nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在
- -newer file1 !file2 查找更改時間比file1新但比file2老的文件
- -type 查找某一類型的文件
- -size n[c]查找文件工度為n塊的文件,帶有c時表示文件長度以字節計算
- -depth 在查找文件地,首先查找當前目錄中的文件,然後在其子目錄中查找。
- -fstype 查找位于某一類型雇傭系統中的文件
- -mount 在查找文件地不跨越文件系統mount點
- -cpio 對匹配的文件使用cpio命令,将這些文件備份到磁帶設備中
# 模糊搜索,在$HOME目錄下查找後綴txt的文件
find ~ -name "*.txt" -print
# 使用正則表達式,查找當前目錄及子目錄裡大寫開頭的文件
find . -name "[A-Z]*" -print
# 在/etc裡找host開頭的文件
find /etc -name "host*" -print
# 查找兩個小寫字母開頭,後跟兩個數字的文件
find . -name "[a-z][a-z][0-9][0-9].txt" -print
# 當前目錄下找權限為755的文件
find . -perm 755 -print
# 忽略/apps/bin目錄進行查找
find /apps -name "/apps/bin" -prune -o -print
# 用ls -l 列出所找到的文件
find . -type f -exec ls -l {} \;
# 删除5天前的日志
find . -name "*.LOG" -mtime 5 -ok rm {} \;
find /home/hap/src/* -name "*.o" -exec rm {} \;
# 使用xargs
# 用grep命令在所有的普通文件中搜索device單詞
find / -type f -print | xargs grep "device"
123456789101112131415161718192021
# 查找大文件
find . -type -size 200M
# 查找大于400M的文件
find . -type f -size 400M -print0 | xargs -0 du -h
1234
二、文本搜索工具 grep
全稱是 Global Regular Expression Print,使用正則表達式搜索文本。命令格式: grep [options]主要參數:
- -a或--text 不要忽略二進制的數據。
- -A<顯示列數>或--after-context=<顯示列數> 顯示搜索到的那列和該列之後的内容。
- -b或--byte-offset 在顯示符合範本樣式的那一列之前,标示出該列第一個字符的位編号。
- -B<顯示列數>或--before-context=<顯示列數> 顯示搜索到的列和該列之前的内容。
- -c或--count 計算符合範本樣式的列數。
- -C<顯示列數>或--context=<顯示列數>或-<顯示列數> 除了顯示符合範本樣式的那一列之外,并顯示該列之前後的内容。
- -d<進行動作>或--directories=<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令将回報信息并停止動作。
- -e<範本樣式>或--regexp=<範本樣式> 指定字符串做為查找文件内容的範本樣式。
- -E或--extended-regexp 将範本樣式為延伸的普通表示法來使用。
- -f<範本文件>或--file=<範本文件> 指定範本文件,其内容含有一個或多個範本樣式,讓grep查找符合範本條件的文件内容,格式為每列一個範本樣式。
- -F或--fixed-regexp 将範本樣式視為固定字符串的列表。
- -G或--basic-regexp 将範本樣式視為普通的表示法來使用。
- -h或--no-filename 在顯示符合範本樣式的那一列之前,不标示該列所屬的文件名稱。
- -H或--with-filename 在顯示符合範本樣式的那一列之前,表示該列所屬的文件名稱。
- -i或--ignore-case 忽略字符大小寫的差别。
- -l或--file-with-matches 列出文件内容符合指定的範本樣式的文件名稱。
- -L或--files-without-match 列出文件内容不符合指定的範本樣式的文件名稱。
- -n或--line-number 在顯示符合範本樣式的那一列之前,标示出該列的列數編号。
- -q或--quiet或--silent 不顯示任何信息。
- -r或--recursive 此參數的效果和指定“-d recurse”參數相同。
- -s或--no-messages 不顯示錯誤信息。
- -v或--revert-match 反轉查找。
- -V或--version 顯示版本信息。
- -w或--word-regexp 隻顯示全字符合的列。
- -x或--line-regexp 隻顯示全列符合的列。
- -y 此參數的效果和指定“-i”參數相同。
- --help 在線幫助。
- --color=auto 将搜索到的内容标上顔色。
pattern 正則表達式主要參數:
- \ :忽略正則表達式中特殊字符的原有含義。
- ^:匹配正則表達式的開始行。
- $ :匹配正則表達式的結束行。
- \<:從匹配正則表達 式的行開始。
- \>:到匹配正則表達式的行結束。
- [ ]:單個字符,如[A]即A符合要求 。
- [ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
- .:所有的單個字符。
- * :有字符,長度可以為0。
示例
# 從.txt文件中查找包含'a'字符串的文本文件
grep 'a' *.txt --color=auto
# 搜索包含連續4個字符的文件
grep '[a-z]\{4\}' *.txt
1234
三 、 sed 從文件中查找
sed 是利用腳本來處理文本文件,可以自動編輯一個或多個文件,簡化重複操作。
命令格式sed [-nefr] [操作]
參數說明
- -e<script>或--expression=<script> 以選項中指定的script來處理輸入的文本文件。
- -f<script文件>或--file=<script文件> 以選項中指定的script文件來處理輸入的文本文件。
- -h或--help 顯示幫助。
- -n或--quiet或--silent 僅顯示script處理後的結果。
- -V或--version 顯示版本信息。
動作說明
- a :新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
- c :取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!
- d :删除,因為是删除啊,所以 d 後面通常不接任何咚咚;
- i :插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
- p :打印,亦即将某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~
- s:取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!
sed -n '2p' sed.txt 打印第2行
sed -n '1,3p' sed.txt 打印1~3行
sed -n '1,3p' sed.txt >sed.tmp 1~3行輸出到sed.tmp文件裡
sed -n '1,$p' sed.txt 顯示全文
sed -n '1p' sed.txt 打印首行
sed -n '$p' sed.txt 打印最後一行
sed '2p' sed.txt 輸出全部文本,然後輸出第2行
sed -n '/should/'p sed.txt 查找should的行
sed -n '/should/=' sed.txt 輸出匹配的行号
sed -n '/\./'p sed.txt 特殊字符查詢,需要\進行轉義
sed '1,3d' sed.txt 删除1~3行
sed '/should/d' sed.txt 删除包含should的行
sed 's/PS/ps/' sed.txt 替換每行第一個單詞
sed 's/PS/ps/g' sed.txt 全文替換
sed '1,3 s/should/SHOULD/g' sed.txt 指定行替換
sed '1 s/should/SHOULD/g' sed.txt 指定行範圍替換
控制字符輸入方式:
^M
1.Ctrl v
2.M
3.釋放Ctrl
123456789101112131415161718192021
四、awk
與sed 相比, awk 傾向于一行中分成數個字段來處理,适合處理小型的文本數據。
awk處理過程: 依次對每一行進行處理,然後輸出
awk命令樣式
- awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
- [-F|-f|-v] 大參數,-F指定分隔符,-f調用腳本,-v定義變量 var=value
- ' ' 引用代碼塊
- BEGIN 初始化代碼塊,在對每一行進行處理之前,初始化代碼,主要是引用全局變量,設置FS分隔符
- // 匹配代碼塊,可以是字符串或正則表達式
- {} 命令代碼塊,包含一條或多條命令
- ; 多條命令使用分号分隔
- END 結尾代碼塊,在對每一行進行處理之後再執行的代碼塊,主要是進行最終計算或輸出結尾摘要信息。
特殊要點:
- $0 表示整個當前行
- $1 每行第一個字段
- NF 字段數量變量
- NR 每行的記錄号,多文件記錄遞增
- FNR 與NR類似,不過多文件記錄不遞增,每個文件都從1開始
- \t 制表符
- \n 換行符
- FS BEGIN時定義分隔符
- RS 輸入的記錄分隔符, 默認為換行符(即文本是按一行一行輸入)
- ~ 匹配,與==相比不是精确比較
- !~ 不匹配,不精确比較
- == 等于,必須全部相等,精确比較
- != 不等于,精确比較
- && 邏輯與
- || 邏輯或
- 匹配時表示1個或1個以上
- /[0-9][0-9] / 兩個或兩個以上數字
- /[0-9][0-9]*/ 一個或一個以上數字
- FILENAME 文件名
- OFS 輸出字段分隔符, 默認也是空格,可以改為制表符等
- ORS 輸出的記錄分隔符,默認為換行符,即處理結果也是一行一行輸出到屏幕
- -F'[:#/]' 定義三個分隔符
五、文件比較diff
diff [選項] <參數>常用命令選項:
- -<行數>:指定要顯示多少行的文本。此參數必須與-c或-u參數一并使用;
- -a或--text:diff預設隻會逐行比較文本文件;
- -b或--ignore-space-change:不檢查空格字符的不同;
- -B或--ignore-blank-lines:不檢查空白行;
- -c:顯示全部内容,并标出不同之處;
- -C<行數>或--context<行數>:與執行“-c-<行數>”指令相同;
- -d或--minimal:使用不同的演算法,以小的單位來做比較;
- -D<巨集名稱>或ifdef<巨集名稱>:此參數的輸出格式可用于前置處理器巨集;
- -e或--ed:此參數的輸出格式可用于ed的script文件;
- -f或-forward-ed:輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處;
- -H或--speed-large-files:比較大文件時,可加快速度;
- -l<字符或字符串>或--ignore-matching-lines<字符或字符串>:若兩個文件在某幾行有所不同,而之際航同時都包含了選項中指定的字符或字符串,則不顯示這兩個文件的差異;
- -i或--ignore-case:不檢查大小寫的不同;
- -l或--paginate:将結果交由pr程序來分頁;
- -n或--rcs:将比較結果以RCS的格式來顯示;
- -N或--new-file:在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:Only in目錄,文件A 若使用-N參數,則diff會将文件A 與一個空白的文件比較;
- -p:若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱;
- -P或--unidirectional-new-file:與-N類似,但隻有當第二個目錄包含了第一個目錄所沒有的文件時,才會将這個文件與空白的文件做比較;
- -q或--brief:僅顯示有無差異,不顯示詳細的信息;
- -r或——recursive:比較子目錄中的文件;
- -s或--report-identical-files:若沒有發現任何差異,仍然顯示信息;
- -S<文件>或--starting-file<文件>:在比較目錄時,從指定的文件開始比較;
- -t或--expand-tabs:在輸出時,将tab字符展開;
- -T或--initial-tab:在每行前面加上tab字符以便對齊;
- -u,-U<列數>或--unified=<列數>:以合并的方式來顯示文件内容的不同;
- -v或--version:顯示版本信息;
- -w或--ignore-all-space:忽略全部的空格字符;
- -W<寬度>或--width<寬度>:在使用-y參數時,指定欄寬;
- -x<文件名或目錄>或--exclude<文件名或目錄>:不比較選項中所指定的文件或目錄;
- -X<文件>或--exclude-from<文件>;您可以将文件或目錄類型存成文本文件,然後在=<文件>中指定此文本文件;
- -y或--side-by-side:以并列的方式顯示文件的異同之處;
- --help:顯示幫助;
- --left-column:在使用-y參數時,若兩個文件某一行内容相同,則僅在左側的欄位顯示該行内容;
- --suppress-common-lines:在使用-y參數時,僅顯示不同之處。
# 最簡單的用法
diff file1 file2
# 并排格式輸出
diff file1 file2 -y -W 50
1234
另外 cmp命令也可以進行文件比較。由于現在可視化工具很多,這些命令很多人日常工作中其實很少會用到;在文件處理方面現在腳本語言Python等用來作文件處理也更方便。
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!