#解法一
tail -n +10 filename 從第10行輸出
#解法二: sed
sed -n '10p' file.txt 列印第10 行內容
sed -n '9, 10p' file.txt
列印第十行
sed -n '10p' file.txt
列印一到十行
sed -n '1,10p' file.txt
# 解法三:grep
查詢指定字元
grep -n 'keyword' file.txt
列印指定字元上下5行
grep -c 5 'keyword' file.txt
列印指定字元上下n行
grep -a 100 -b 100 'keyword' file.txt
-a after 後面
-b before 前面
查詢指定字元出現次數
grep -o 'keyword' file.txt |
wc -l
解法四:awk
nr: awk 讀取的記錄行數
fnr:
cat file.txt |
awk'nr==10'
grep -r 「關鍵字」 /路徑
給定乙個檔案file.txt
,轉置它的內容。
你可以假設每行列數相同,並且每個欄位由' '
分隔.
示例:假設file.txt
檔案內容如下:
name age
alice 21
ryan 30
應當輸出:
name alice ryan
age 21 30
先執行begin
後的
,相當於表頭
再執行中的檔案處理主體命令
最後執行end
後的中的命令
有幾個經常用到的awk
常量:nf
是當前行的field
字段數;nr
是正在處理的當前行數。
注意到是轉置,假如原始文字有m
行n
列(字段),那麼轉置後的文字應該有n
行m
列,即原始文字的每個欄位都對應新文字的一行。我們可以用陣列res
來儲存新文字,將新文字的每一行存為陣列res
的乙個元素。
在end
之前我們遍歷file.txt
的每一行,並做乙個判斷:在第一行時,每碰到乙個欄位就將其按順序放在res
陣列中;從第二行開始起,每碰到乙個欄位就將其追加到對應元素的末尾(中間新增乙個空格)。
文字處理完了,最後需要輸出。在end
後遍歷陣列,輸出每一行。注意printf
不會自動換行,而print
會自動換行。
awk
' else
}}end
}' file.txt
給定乙個包含**號碼列表(一行乙個**號碼)的文字檔案file.txt
,寫乙個 bash 指令碼輸出所有有效的**號碼。
你可以假設乙個有效的**號碼必須滿足以下兩種格式:(***) ***-***x
或***-***-***x
。(x
表示乙個數字)
你也可以假設每行前後沒有多餘的空格字元。
示例:假設file.txt
內容如下:
987-123-4567
123 456 7890
(123) 456-7890
你的指令碼應當輸出下列有效的**號碼:
987-123-4567
(123) 456-7890
cat file.txt |
awk"/^([0-9]-|\([0-9]\) )[0-9]-[0-9]$/"
cat file.txt |
grep -p "^\([0-9]\) [0-9]-[0-9]$|^[0-9]-[0-9]-[0-9]$"
linux使用者和組管理,新增修改使用者,新增修改組,加入組,移除組
零拷貝技術
dmadf -hl 檢視磁碟剩餘空間
df -h 檢視每個根路徑的分割槽大小
du -sh [目錄名] 返回該目錄的大小
du -sm [資料夾] 返回該資料夾總m數
locate命令
文字檔案操作
1 文字檔案的寫入 建立檔案流 filestream filestream new filestream c myfile file.txt filemode.create 建立寫入器 streamwriter sw new streamwriter filestream 以流的方式寫入資料 sw....
文字檔案操作
文字檔案操作 編寫乙個程式demo.py,要求執行該程式後,生成demo new.py檔案,其中內容與demo.py一樣,只是在每一行的後面加上行號以 開始,並且所有行的 符號垂直對齊。filename demo.py with open filename,r as fp lines fp.read...
C 文字檔案操作
如何向現有檔案中新增文字 usingsystem usingsystem.io classtest 如何建立乙個新文字檔案並向其中寫入乙個字串。方法可提供類似的功能。usingsystem usingsystem.io publicclasstexttofile alreadyexists.file...