unix cal命令特殊字符

kau*_*tta 1 unix shell awk cal

当我cal | tail -6在我的unix机器上尝试" "时,我得到了 -

             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
Run Code Online (Sandbox Code Playgroud)

但当我尝试" cal | tail -6 | awk '{print $7}'"时,我得到 -

10
17
24
Run Code Online (Sandbox Code Playgroud)

3在哪里?我的要求基本上都是工作日,即2,3,4,5和6列.但由于" cal" 的奇怪行为,我的输出错误

dje*_*lin 8

第一行中只有3个以空格分隔的列. cal工作完全正确,你不明白是如何awk工作的.就awk您而言,您的第一行中没有第7列,因为它会引起对空白分隔列的注意,而不是固定宽度列.

快速谷歌搜索显示你可以使用

BEGIN  { FIELDWIDTHS = "3 3 3 3 3 3 3" }
Run Code Online (Sandbox Code Playgroud)

在你的awk脚本中.