[TOC]

常用输出命令:

cut命令使用

抽取数据列

1
2
3
4
5
6
7
8
9
#选项与参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;

cut -c 1,3,5 file 抽取数据的第1,3,5 列
cut -c 1-5 file 抽取数据1-5列
cut -c 1,3-5 file 抽取数据第一列以及3-5列
cut -c 3-5 file > new 抽取数据3-5列并保存到new

抽取数据字段

1
2
3
cut -f 1 -d ':' file  抽取第一个字段,字段用使用 ':'隔开的
cut -f 1,3-5 -d ' ' file 抽取第一个以及第3-5个字段,字段使用空格隔开的
cut -sf 3-5 -d ':' file 抽取第3-5个字段,并抑制没有定界符‘:‘ 的行的输出

echo

以下两句等价:

1
2
echo “hello!” 
echo hello!

显示转义字符

1
2
3
echo “\”hello!\”” 
echo \”hello!\”
#打印 “hello!”

显示变量

1
2
3
read name  # 读取用户输入
echo "$name"
echo $name

反斜杠

\a 警报,响铃

\b 退格(删除键)
\f 换页(FF),将当前位置移到下页开头
\n 换行
\r 回车
\t 水平制表符(tab键)

\v 垂直制表符

1
2
echo “hello\n”      #输出 hello\n 
echo -e “hello\n” #输出 hello 与 换行

显示结果定向至文件

1
2
echo “hello” > hello.txt    #覆盖 
echo “hello” >> hello.txt #文未添加,不覆盖

原样输出字符(单引号)

1
echo '$name\' #输出$name\

命令

1
echo `date` #这里可不是单引号哦

printf 详解

printf 命令模仿 C 程序库(library)里的 printf() 程序。 标准所定义,因此使用printf的脚本比使用echo移植性好。 printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串, 还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。

printf format-string [arguments…]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
参数说明: 
format-string: 为格式控制字符串
arguments: 为参数列表。
用法与c中的差不多
printf “Hello, Shell\n”
printf “%s %d %f\n” hello 10 3.14 # format-string为双引号
printf "%d %s\n" 1 "abc"

# 单引号与双引号效果一样
printf '%d %s\n' 1 "abc"

# 没有引号也可以输出
printf %s abcdef
# format-string为双引号
printf "%d %s\n" 1 "abc"

# 单引号与双引号效果一样
printf '%d %s\n' 1 "abc"

# 没有引号也可以输出
printf %s abcdef
# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
printf %s abc def

printf "%s\n" abc def

printf "%s %s %s\n" a b c d e f g h i j

# 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
printf "%s and %d \n"