V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
1yndonn3u
V2EX  ›  Linux

linux CLI 下发送邮件换行符问题。

  •  
  •   1yndonn3u · Dec 15, 2015 · 3965 views
    This topic created in 3791 days ago, the information mentioned may be changed or developed.

    df -lh 结果如下

    ➜ ~ df -lh
    Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
    /dev/disk1 112Gi 42Gi 70Gi 38% 10947483 18375779 37% /

    我想把以上内容通过 CLI 界面的邮箱直接发送除去,但是发出去的结果就变成了一行显示了,不能保持现在的格式化输出。
    哪位朋友有办法么?最好使用 mail -s

    对了,我还要对里面的数据进行排序和处理,磁盘空间大于 50%的时候标记为红颜色。

    6 replies    2015-12-18 11:44:48 +08:00
    billlee
        1
    billlee  
       Dec 15, 2015
    sed 's/$/\r/' 吗?
    bdbai
        2
    bdbai  
       Dec 15, 2015 via iPhone
    上 HTML 。
    Orzzzz
        3
    Orzzzz  
       Dec 15, 2015
    df -h > df.txt

    发送附件。
    uuspider
        4
    uuspider  
       Dec 15, 2015
    << EOF
    应该是可以的
    Arthur2e5
        5
    Arthur2e5  
       Dec 18, 2015
    纯文本邮件一般单独一个换行没有特殊的意义,只有相当于 wrap line 的意思,而有些电子邮件客户端就喜欢把这些东西吃掉,只考虑连续两个换行符为新自然段的意思(这当然很蠢——发个充满诚意的制表符画出来的表格直接 GG )。收发的时候应该还是原样的,不过的确也听说过逗逼服务商强行吃掉重排的情况。

    HTML 是个好主意,毕竟敢吃 <pre> 的逗逼更少一点。附件的话一般服务商更不敢乱改了。考虑到想要加奇怪的高亮功能,我们用 HTML 吧:

    # 自己爱怎么缩进怎么来。。
    shopt -e
    generate(){
    set -f
    local out i tok && readarray -t out < <(df -lh) || return;
    printf '<pre>\n'
    for i in "${out[@]}"; do
    for tok in $i; do
    if [[ $i == +([0-9])% && ${i%\%} < 50 ]]; then
    printf '<font color=red>%s</font>\t' "$i"
    else
    printf '%s\t' "$i"
    fi
    done
    printf '\n'
    done
    set +f
    }

    懒得写查找替换实体了……自己小心点……另外这会打乱列的排列我懒得重新统计 format 先用 tab 糊上吧……
    Arthur2e5
        6
    Arthur2e5  
       Dec 18, 2015
    @Arthur2e5 我个傻子。。 for tok in $i 直到第一个 done 里面所有的 $i 换成 $tok, ${i 换成 ${tok 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2540 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.