1
添加列索引我有一個行數和列的這樣一個文本文件:如何在bash
a b c d ...
e f g h ...
i j k l ...
...
我要添加列索引與輸出這個樣子的
每個條目1:a 2:b 3:c 4:d ...
1:e 2:f 3:g 4:h ...
1:i 2:j 3:k 4:l ...
...
我想知道是否有一個簡單的方法來實現這個在bash中。謝謝!
添加列索引我有一個行數和列的這樣一個文本文件:如何在bash
a b c d ...
e f g h ...
i j k l ...
...
我要添加列索引與輸出這個樣子的
每個條目1:a 2:b 3:c 4:d ...
1:e 2:f 3:g 4:h ...
1:i 2:j 3:k 4:l ...
...
我想知道是否有一個簡單的方法來實現這個在bash中。謝謝!
使用awk:
awk '{for (i=1;i<=NF;i++){printf i":"$i" "};printf "\n"}' file
輸出:
1:a 2:b 3:c 4:d 5:... 1:e 2:f 3:g 4:h 5:... 1:i 2:j 3:k 4:l 5:... 1:...
用Perl:
perl -lane '$, = " "; print map { (1 + $_) . ":$F[$_]" } 0 .. $#F' file
# or
perl -lane '$, = " "; $i = 1 ; print map { $i++ . ":$_" } @F' file
如果域中的一個包含''%,你會得到有趣的結果,這種方式。使用'printf(「%d:%s」,i,$ i)'而不是'printf i':「$ i」「'來避免這個問題。還要注意,這會使所有行以虛假的空格字符結束,這可能是也可能不是問題。其中一種方法是'awk'{for(i = 1; i <= NF; ++ i){$ i = sprintf(「%d:%s」,i,$ i)};打印}「,即替換字段而不是直接打印。 – Wintermute
謝謝你的有用提示。 – Cyrus