Text-Processing

校準無空格分隔符

  • May 29, 2012

我是一名 OpenBSD 使用者,我正在編寫一個 awk 腳本,它會為我教授的所有課程自動生成 TeX 課程日曆。要從系統中獲取實際日曆,我使用 Unix cal 命令。問題是 cal 命令的輸出使用空格作為分隔符,當我將 nawk 腳本應用到它時會產生各種問題。我查看了 cal 的原始碼,似乎只要破解原始碼就會強制 cal 命令使用空格以外的分隔符。讓日曆看起來像這樣的最簡單方法是什麼

       June 2012
Su, Mo, Tu, We, Th, Fr, Sa
 ,   ,   ,   ,   ,  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

你可以用sed它。

$ cal|sed -e '1n;s/\(..\)\(.\)/\1,\2/g'
     May 2012      
Su, Mo, Tu, We, Th, Fr, Sa
 ,   ,  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, 31

1n列印第一行並移至下一行。替換然後將字元三三個並列印前兩個,,然後列印第三個。

引用自:https://unix.stackexchange.com/questions/39577