排序
sort -t, -k3n 2.txt
-k3n 3代表第幾列 n代表按照數(shù)字排序
-t<分隔字符> 指定排序時(shí)所用的欄位分隔字符岭埠。
-b 忽略每行前面開始出的空格字符榕莺。
-c 檢查文件是否已經(jīng)按照順序排序包帚。
-d 排序時(shí)囊拜,處理英文字母感混、數(shù)字及空格字符外态兴,忽略其他的字符页衙。
-f 排序時(shí)蓄氧,將小寫字母視為大寫字母函似。
-i 排序時(shí),除了040至176之間的ASCII字符外喉童,忽略其他的字符撇寞。
-m 將幾個(gè)排序好的文件進(jìn)行合并。
-M 將前面3個(gè)字母依照月份的縮寫進(jìn)行排序堂氯。
-n 依照數(shù)值的大小排序重抖。
-o<輸出文件> 將排序后的結(jié)果存入指定的文件。
-r 以相反的順序來排序祖灰。
-t<分隔字符> 指定排序時(shí)所用的欄位分隔字符。
+<起始欄位>-<結(jié)束欄位> 以指定的欄位來排序畔规,范圍由起始欄位到結(jié)束欄位的前一欄位局扶。
--help 顯示幫助。
--version 顯示版本信息叁扫。
文本操作 awk
awk其實(shí)不僅僅是工具軟件三妈,還是一種編程語言
基本用法
# 格式
$ awk 動(dòng)作 文件名
# 示例
$ awk '{print $0}' demo.txt
文件的分割符可以使用-F
來進(jìn)行分割
變量
-
$ + 數(shù)字
表示某個(gè)字段 -
NF
表示當(dāng)前有多少個(gè)字段,$NF
表示最后一個(gè)字段 -
NR
表示當(dāng)前處理的第幾行 -
FILENAME
:當(dāng)前文件名
函數(shù)
- toupper(): 用于將字符轉(zhuǎn)為大寫
- tolower():字符轉(zhuǎn)為小寫。
- length():返回字符串長(zhǎng)度莫绣。
- substr():返回子字符串畴蒲。
- sin():正弦。
- cos():余弦对室。
- sqrt():平方根模燥。
- rand():隨機(jī)數(shù)。
條件
awk '條件 動(dòng)作' 文件名
1. $ awk -F ':' '/usr/ {print $1}' demo.txt
root
daemon
bin
sys
if
$ awk -F ':' '{if ($1 > "m") print $1; else print "---"}' demo.txt
root
---
---
sys
sync