我想添加一個數字的多個空格是「20120911162500
」首先增加四個空格,然後每兩個之後。如何在第一個四個空格之後添加一個空格,然後在兩個空格之後使用awk
所需的輸出是
2012 09 11 16 25 00
這是我的嘗試:
echo "2012 09 11 16 25 00" |sed 's/.\{4\}/& /g'
但輸出2012 0911 1625 00
。
我想添加一個數字的多個空格是「20120911162500
」首先增加四個空格,然後每兩個之後。如何在第一個四個空格之後添加一個空格,然後在兩個空格之後使用awk
所需的輸出是
2012 09 11 16 25 00
這是我的嘗試:
echo "2012 09 11 16 25 00" |sed 's/.\{4\}/& /g'
但輸出2012 0911 1625 00
。
使用Add按鈕單擊事件
將給予空間第一後四位和兩個再經過第二位空間等等
對於實例
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();
你可以這樣做方式:
echo "20120911162500" |sed 's/.\{2\}/& /g;s/ //'
2012 09 11 16 25 00
給每2位增加空間s/.\{2\}/& /g
然後刪除第一個空格,使其成爲4位數s/ //'
。
這可能爲你工作(GNU SED):
sed 's/../ &/3g' file
此預先考慮到第三對字符和其後每2個字符的空間。
創建一個文件
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 123456789| awk -f f.awk
非常好,謝謝 – Ben
隨着該工具/語言? – Pierre
你試過了嗎? – Pierre
是的,但我沒有正確地嘗試echo「2012 09 11 16 25 00」| sed's /。\ {4 \} /&/ g'輸出2012 0911 1625 00 – Ben