1

このようにフィールド番号とフィールドを印刷したいのですが…awkが一番いい方法ですか?もしそうなら、どのように?入力行のフィールド数は異なる場合があります。

input_line ="a|b|c|d" 
expected result:
1 a
2 b
3 c
4 d

フィールドを印刷することはできますが、フィールド番号の印刷についてサポートが必要です。これが私が持っているものです

echo "a|b|c|d" |awk -F"|" '{for (i=1; i<=NF; i++) print $i}'
a
b
c
d
4

2 に答える 2

2

次のようなawkコマンドを使用できます。

echo "a|b|c|d" | awk -F"|" '{for(i=1; i<=NF; i++) print i, $i}'
于 2013-03-26T19:14:42.593 に答える
0

awkwhileループを使用すると、トリックを実行できます。

awk -F '|' '{ i = 1; while (i <= NF) { print i " " $i; i++; } }' <<< "a|b|c|d"
于 2013-03-26T19:17:05.690 に答える