printf命令(格式化输出命令)
printf '输出类型 输出格式' 输出内容
输出类型:
%ns:输出字符串。n是数字,指代输出几个字符
%ni:输出整数。n是数字,指代输出几个数字
%m.nf:输出浮点数。m,n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位是整数。如123456.78
输出格式;
\a:输出警告声音
\b:输出退格键,即backspace键
\f:清除屏幕
\n:换行
\r:回车,enter
\t:水平制表符,也就是Tab键
\v:垂直制表符。
printf '%s' $(cat test.txt)
cut字段提取命令
cut命令
cut [选项] 文件名
选项:
-f 列号:提取第几列
-d 分隔符:按照指定分割符分隔列,默认制表符(Tab,不等于空格)
实例:
cut -d ":" -f 1,3 文件名
awk命令
awk格式
awk '条件1{动作1}条件2{动作2}…' 文件名
条件(Pattern):
— 一般使用关系表达式作为条件。例如: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
# 获取分区空间使用的百分比
df -h|awk '{print $5}'
sed命令
sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令
sed [选项] '[动作]' 文件名
选项:
-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择则只会把经过sed命令处理的行输出到屏幕。
-e:允许对输入数据应用多条sed命令编辑。
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。
动作:
a:追加,在当前行后添加一行或多行
c:行替换,用c后面的字符串替换原数据行
i:插入,在当前行前插入一行或多行
d:删除,删除指定的行
p:打印,输出指定的行
s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”
实例:
# 输出全文并重复输出第二行,两个第二行挨着
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