printf命令(格式化輸出命令)
printf '輸出類型 輸出格式' 輸出內(nèi)容
輸出類型:
%ns:輸出字符串狈究。n是數(shù)字碗淌,指代輸出幾個字符
%ni:輸出整數(shù)抖锥。n是數(shù)字亿眠,指代輸出幾個數(shù)字
%m.nf:輸出浮點(diǎn)數(shù)磅废。m,n是數(shù)字拯勉,指代輸出的整數(shù)位數(shù)和小數(shù)位數(shù)竟趾。如%8.2f代表共輸出8位數(shù)宫峦,其中2位是小數(shù)岔帽,6位是整數(shù)导绷。如123456.78
輸出格式;
\a:輸出警告聲音
\b:輸出退格鍵,即backspace鍵
\f:清除屏幕
\n:換行
\r:回車贾费,enter
\t:水平制表符,也就是Tab鍵
\v:垂直制表符褂萧。
printf '%s' $(cat test.txt)
cut字段提取命令
cut命令
cut [選項] 文件名
選項:
-f 列號:提取第幾列
-d 分隔符:按照指定分割符分隔列,默認(rèn)制表符(Tab箱玷,不等于空格)
實例:
cut -d ":" -f 1,3 文件名
awk命令
awk格式
awk '條件1{動作1}條件2{動作2}…' 文件名
條件(Pattern):
— 一般使用關(guān)系表達(dá)式作為條件陌宿。例如:X>10判斷變量x是否大于10
動作(Action):
— 格式化輸出
— 流程控制語句
例如:
# 無條件輸出第二列第四列($0是文件名)
awk '{printf $2 "\t" $4 "\n"}' student.txt
# print自動加換行锡足,print不是Linux命令壳坪,是awk下的
awk '{print $2 "\t" $4 }' student.txt
# 獲取分區(qū)空間使用的百分比
df -h|awk '{print $5}'
sed命令
sed是一種幾乎包括在所有UNIX平臺(包括Linux)的輕量級流編輯器舶得。sed主要是用來將數(shù)據(jù)進(jìn)行選取爽蝴、替換沐批、刪除蝎亚、新增的命令
sed [選項] '[動作]' 文件名
選項:
-n:一般sed命令會把所有數(shù)據(jù)都輸出到屏幕九孩,如果加入此選擇則只會把經(jīng)過sed命令處理的行輸出到屏幕发框。
-e:允許對輸入數(shù)據(jù)應(yīng)用多條sed命令編輯。
-i:用sed的修改結(jié)果直接修改讀取數(shù)據(jù)的文件梅惯,而不是由屏幕輸出宪拥。
動作:
a:追加铣减,在當(dāng)前行后添加一行或多行
c:行替換,用c后面的字符串替換原數(shù)據(jù)行
i:插入葫哗,在當(dāng)前行前插入一行或多行
d:刪除缔刹,刪除指定的行
p:打印劣针,輸出指定的行
s:字串替換,用一個字符串替換另外一個字符串酿秸。格式為“行范圍s/舊字串/新字串/g”
實例:
# 輸出全文并重復(fù)輸出第二行灭翔,兩個第二行挨著
sed '2p' a.txt
# 輸出第二行
sed -n '2p' a.txt
# 刪除第二行到第四行,注意不是第二行和第四行肝箱,是范圍
sed '2,4d' a.txt
# 在第二行之后添加一行hello world
sed '2a hello world' a.txt
# 在第二行之前添加一行hello world
sed '2i hello world' a.txt
# 將第二行替換為hello world
sed '2c hello world' a.txt
# 將第四行的第一個70替換為100
sed '4s/70/100/' a.txt
# 將第四行的所有70替換為100
sed '4s/70/100/g' a.txt
# 將全文的所有70替換為100
sed 's/70/100/g' a.txt
# 將全文的第一個70替換為100
sed 's/70/100/' a.txt
# 修改并保存
sed -i '4s/70/100/' a.txt
# 多條指令
sed -e '1s/70/100/g;2s/80/100/g' a.txt
# 多條指令并保存(-e 需要與指令連在一塊,即-i不能插在之間)
sed -i -e '1s/70/100/g;2s/80/100/g' a.txt