如何使用awk

时间:2016-04-25 07:01:01

标签: linux sed

我想添加一个数字的多个空格是“20120911162500”前四个添加空格然后每两个添加一个空格。

所需的输出

2012 09 11 16 25 00

这就是我的尝试:

echo "2012 09 11 16 25 00" |sed 's/.\{4\}/& /g'

但输出为2012 0911 1625 00

4 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed 's/../ &/3g' file

这为第三对字符添加了一个空格,之后每2个字符。

答案 1 :(得分:0)

You can do this way:

echo "20120911162500" |sed 's/.\{2\}/& /g;s/ //'
2012 09 11 16 25 00

Add space to every 2 digits s/.\{2\}/& /g then remove the first space to make it 4 digits s/ //' .

答案 2 :(得分:0)

创建文件

<强> f.awk

function sep(i, n) { # which separator to use?
    if (i==n)        return ""
    if (i<4)         return ""
    if (i % 2 == 0)  return " "
    return ""
}

function format(num,    n, i, ans) {
    n = split(num, a, "")
    for (i=1; i<=n; i++)
      ans = ans a[i] sep(i, n)
    return ans
}

{
    print format($0)
}

用法:

echo 12345678901234 | awk -f f.awk

答案 3 :(得分:-1)

使用添加按钮单击事件

它将在四位数之后首先给出空格,然后在两位数之后给出第二位,依此类推

例如

string data = TextBox1. Text;
    string[] no = new string[data.Length];
    string number = "";
    int k = 4;
    for (int i = 0; i < data.Length; i++)
    {
        if (i == k)
        {
            number += " ";
            k = k + 2;
        }

        number += data[i] ;
    }
    Label1.Text = number.ToString();