记录2020-8-20需求
sed命令
sed不能操作空文件
num=`cat $HOME/data.txt |wc -l`
sed -i '1l'" $num" $HOME/data.txt
本想把data.txt文件出产出的数据条数作为文件头产出到第一行,后来发现当数据条数为0,文件头并不能显示0。
经过一番查阅,得出结论:
sed是基于行来处理文件流的编辑器,如果 文件为空,sed命令就无法处理。
于是转变思路先判断文件是否为空,为空直接插入0,不为空用sed在第一行插入数据条数
test -s data.txt && sed -i '1i'"$num" $HOME/data.txt ||echo "0" >> $HOME/data.txt
补课时间:
- sed -i 直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改~
- test -s 判断文件是否为空,注意后面跟文件名
- shell为变量赋值时不用加 $,引用变量时加 $
num=123
echo $num
-
shell变量名和等号之间不能有空格
-
shell单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。 -
双引号的优点:
双引号里可以有变量
双引号里可以出现转义字符