- cut [選項] 文件名
-f 列號 #提取第幾列(分隔符默認爲\t)
-d 分隔符 #指定分隔符
例如:cut -f 2 a.txt #截取文件a.txt內容的第二列(列號從1開始)
cut -f 2,4 a.txt #截取文件a.txt內容的第二列和第四列
cut -d “:” -f 1,3 /etc/passwd #截取文件passwd文件的第1列和第三列,以:分割取其中的第一列和第三列
- printf ‘輸出類型 輸出格式’ 輸出內容
輸出類型:
%ns 輸出字符串,n是數字,指代輸出幾個字符
%ni 輸出整數。n是數字,指代輸出幾個數字
%m.nf 位數和小數位數。例如:%8.2f 代表輸出8位數,其中2位是小數,6位是整數
輸出格式:
\a 輸出警告聲音
\b 輸出退格鍵,也就是BackSpace鍵
\f 消除屏幕
\n 換行
\r 回撤
\t 水平製表符
\v 垂直製表符
舉例:
printf ‘%s %s %s\n’ 1 2 3 4 5 6 #表示每三個位一組輸出,並加換行符
printf ‘%s\t%s\t%s\t’ $(cat a.txt) #表示以4列的形式輸出
- awk ‘條件1{動作1}條件2{動作2}…’ 文件名
awk ‘{printf $2 “\t” $6 “\n”}’ a.txt #輸出文件a.txt的第二列和第6列
- sed [選項] ‘[動作]’ 文件名 #說明:動作必須用引號引起來
選項:
-n 一般sed命令會把所有數據都輸出到屏幕。如果加入此選擇,則只會把經過sed命令處理的行輸出到屏幕。
-e 允許對輸入數據應用多條sed命令編輯
-i 用sed的修改結果直接修改讀取的數據的文件,而不是修改屏幕輸出
動作:
a\ 追加,在當前行後添加一行或多行。添加多行時除最後一行外,每行末尾需要用""代表數據未完結。
c\ 行替換,用c後面的字符替換原數據行,替換多行時除最後一行外,每行末尾需要用""代表數據未完結。
i\ 插入,在當前插入一行或多行,插入多行時,除最後一行外每行末尾需用""代表數據未完結。
d 刪除,刪除指定的行
p 打印,輸出指定的行
s 字符串替換,用一個字符串替換另外一個字符串。格式爲"行範圍 s/舊字符串/新字符串/g"
sed可以接收管道符的輸出結果
舉例:
sed ‘2p’ a.txt #輸出第2行後,又把所有內容輸出一遍
sed -n ‘2p’ a.txt #只輸出第二行
sed ‘2,4d’ a.txt #刪除第2到4行,只刪除屏幕輸出,不會更改文件本身的內容
sed ‘2a hello’ a.txt #在第二行插入一行 hello
sed ‘2i hello’ \
word’ a.txt #在第二行前插入多行 hello 一行 word一行
sed ‘2c no person’ a.txt #用no person 替換第二行
sed ‘4s/99/55/g’ a.txt #把第4行的99替換爲55
sed -i ‘4s/99/55/g’ a.txt #把第4行的99替換爲55,修改的是原文件而不是屏幕輸出
sed -i ‘s/99/55/g’ a.txt #s前不加行號時表示替換整個文件中匹配的字符串
sed -e ‘s/Liming//g;s/Gao//g’ a.txt #-e表示允許多個條件執行,把Liming替換爲空,把Gao替換爲空
-
sort [選項] 文件名 #排序
選項:
-f 忽略大小寫
-n 以數值型進行排序,默認使用字符串型排序
-r 反向排序
-t 指定分隔符,默認分隔符是製表符
-k n[,m] 按照指定的字段範圍排序。從第n字段開始,m字段結束(默認到行尾) -
wc [選項] 文件名 #統計
選項:
-l 只統計行數
-w 只統計單詞數
-m 只統計字符數