用cat 拼接
cat
命令能够显示拼接文件内容
cat
命令常规的操作方法
cat file1 file2
root@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo This is from one.txt > one.txt
root@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo This is from two.txt > two.txt
root@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ cat one.txt two.txt
This is from one.txt
This is from two.txt
cat
命令不仅可以读取文件,拼接数据,还可以从标准输入中读取
echo 'Text through stdin' | cat - file.txt
Text through stdin
This is a line inside file.txt
This is the second line inside file.txt
临时文件命名与随机数
shell脚本经常需要存储临时数据,最适合存储数据的位置实/tmp
(系统重启后会清空)
mktemp
可以为临时文件或者目录创建唯一的名字
- 创建临时文件
(base) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ filename=`mktemp`
(base) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo $filename
/tmp/tmp.jiKnNGk22S
- 创建临时目录
(base) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ dirname=`mktemp -d`
(base) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo $dirname
/tmp/tmp.igBk5AmTMp
分割文件与数据
有时候需要把文件分割成多个更小的片段
split
用来分隔文件
split -b 10k data.file
根据扩展名切分文件
%
可以从name.extension这种格式中提取name部分
(learn_sh) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ file_jpg='sample.jpg'
(learn_sh) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ name=${file_jpg%.*}
(learn_sh) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo File name is: $name
File name is: sample
而操作符#
相反可以取出扩展名
(learn_sh) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ extension=${file_jpg#*.}
(learn_sh) admin@iZ2zei59vocobndhxpsko9Z:~/learn_sh$ echo Extension is: $extension
Extension is: jpg