|
- cat timetable
- 学生作息及上课时间
- 6:00 起 床
- 6:10~6:30 早 操
- 6:30~7:10 早 自 习
- 7:10 早 餐
- 7:40 预 备 铃
- 8:00~8:45 第一节课
- 8:55~9:40 第二节课
- 9:40~10:00 课 间 操
- 10:00~10:45 第三节课
- 10:55~11:40 第四节课
- 11:40~13:40 午餐和午休
- 13:40 预 备 铃
- 14:00~14:45 第五节课
- 14:55~15:40 第六节课
- 16:00~16:45 第七节课
- 16:55~17:40 第八节课
- 17:40~19:00 晚餐和自由活动
- 19:00~19:45 第九节课
- 19:55~20:40 第十节课
- 20:50~21:35 第十一节课
- 22:40 教室熄灯
- 23:00 就寝熄灯
复制代码
我想加表格线
- [sprite@calabash ~]$ more table
- #!/bin/bash
- sed '1,3d' timetable |awk '
- BEGIN {print "+-----------------------------------+";
- print "| 时间 | 活动 |";
- print "+-----------------------------------+"}
- {printf "|%14s | ",$1;
- tmp="";
- for(i=2;i<=NF;i++)
- {tmp=tmp$i;}
- printf "%s",tmp;
- for(i=0;i<22-length(tmp);i++)
- printf "%s"," ";
- printf "|\n+---------------+-------------------+\n"}'
复制代码
输出对不齐,为什么呢。
- [sprite@calabash ~]$ sh table
- +-----------------------------------+
- | 时间 | 活动 |
- +-----------------------------------+
- | 6:10~6:30 | 早操 |
- +---------------+-------------------+
- | 6:30~7:10 | 早自习 |
- +---------------+-------------------+
- | 7:10 | 早餐 |
- +---------------+-------------------+
- | 7:40 | 预备铃 |
- +---------------+-------------------+
- | 8:00~8:45 | 第一节课 |
- +---------------+-------------------+
- | 8:55~9:40 | 第二节课 |
- +---------------+-------------------+
- | 9:40~10:00 | 课间操 |
- +---------------+-------------------+
- | 10:00~10:45 | 第三节课 |
- +---------------+-------------------+
- | 10:55~11:40 | 第四节课 |
- +---------------+-------------------+
- | 11:40~13:40 | 午餐和午休 |
- +---------------+-------------------+
- | 13:40 | 预备铃 |
- +---------------+-------------------+
- | 14:00~14:45 | 第五节课 |
- +---------------+-------------------+
- | 14:55~15:40 | 第六节课 |
- +---------------+-------------------+
- | 16:00~16:45 | 第七节课 |
- +---------------+-------------------+
- | 16:55~17:40 | 第八节课 |
- +---------------+-------------------+
- | 17:40~19:00 | 晚餐和自由活动 |
- +---------------+-------------------+
- | 19:00~19:45 | 第九节课 |
- +---------------+-------------------+
- | 19:55~20:40 | 第十节课 |
- +---------------+-------------------+
- | 20:50~21:35 | 第十一节课 |
- +---------------+-------------------+
- | 22:40 | 教室熄灯 |
- +---------------+-------------------+
- | 23:00 | 就寝熄灯 |
- +---------------+-------------------+
复制代码
已经解决了。原来awk中一个汉字的lenth=3,为什么不是2呢。
echo 你好 | awk '{print length($1)}'
6 |
|