You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用单个awk生成带序号的星期序列 简化多管道shell命令

单awk实现方案

给你两个可选的实现,都不需要额外管道,单个awk进程即可完成需求:


方案1:适配locale的动态生成方案

如果需要适配系统locale的星期缩写(比如中文locale下自动输出中文星期缩写),或者强制输出英文缩写,可使用时间计算逻辑实现,强制英文的话在命令前加LC_TIME=C即可:

LC_TIME=C awk 'BEGIN {
    # 定位到本周周日的时间戳,%w返回0对应周日,以此为基准偏移计算后续6天
    ts = systime() - strftime("%w", systime()) * 86400
    for (i = 1; i <=7; i++) {
        printf "%d %s\n", i, strftime("%a", ts + (i-1)*86400)
    }
}'

如果要把结果存储到文件,只需在命令末尾加> 目标文件路径即可。


方案2:固定英文缩写的极简方案

如果确认只需要固定的英文星期缩写,无需适配locale,直接硬编码输出即可,执行效率最高:

awk 'BEGIN {split("Sun Mon Tue Wed Thu Fri Sat", a); for(i=1;i<=7;i++) print i,a[i]}'

内容的提问来源于stack exchange,提问作者stack0114106

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:30:04