课堂上教学的进度表入门案例,简单记录
将每一列拆分开来生成单独的文件,最后使用paste以及awk命令合并美化。web
seq 15 > lie1 | cat lie1
seq 0 14 | xargs -i date -d "20200224 + {}weeks" +%Y.%m.%d > lie2.1
seq 0 14 | xargs -i date -d "20200224 + {}weeks + 4days" +%Y.%m.%d > lie2.2
paste * 能够对当前目录的全部文件进行以列对列的方式合并
也能够指定文件合并
如:paste file testfile testfile1 #合并指定文件的内容shell
paste *
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
使用awk上文中的进度表每一列,awk会用$一、$2…进行区分svg
paste * | awk '{print $1"\t"$2"-"$3"\t"$4}'
写一个脚本实现输入li4文件名以及起始日期输出简单进度表工具
#只须要在/home/mode2/目录下建立li4文件名 #并将li4 起始日期分别做为 第一 第二参数传入便可简单生成进度表 #应该还能够扩展,不会了 fileName=$1 # wc -l 用来只显示行数 #使用$()来将Linux命令输出的值赋予变量 total=$(cat /home/mode2/${fileName} | wc -l) startdata=$2 #建立序号列 seq $total > /home/mode2/li1 #建立时间段1 seq 0 `expr ${total} - 1` | xargs -i date -d "${startdata} + {}weeks" +%Y.%m.%d > /home/mode2/li2 #建立时间段2 seq 0 `expr ${total} - 1` | xargs -i date -d "${startdata} + {}weeks + 4days" +%Y.%m.%d > /home/mode2/li3 #进行列合并,输出不保存,保存没写 paste /home/mode2/li1 /home/mode2/li2 /home/mode2/li3 /home/mode2/${fileName} | awk '{print $1"\t"$2"-"$3"\t"$4}'