这会获取文件中的所有标题
$head -n 1 basicFile.csv | tr ',' '\n'
header1
header2
header3
header4
header5
header6
header7
header8
header9
header10
我想要的是在左侧添加标题号 得到类似的东西:
1:header1
...
10:header10
我该怎么做?
答案 0 :(得分:3)
head -n 1 basicFile.csv | tr ',' '\n' | cat -n
不是完全您指定的输出,但非常接近。
答案 1 :(得分:1)
使用awk
执行此操作的方法可能更短,但这可行:
oldIFS=$IFS
IFS=','
i=1
for header in $(head -n 1 basicFile.cs); do
echo ${i}:$header
((i++))
done
IFS=$oldIFS
答案 2 :(得分:0)
你可以使用一个简单的计数器和for循环:
COUNTER=1
for h in $(head -n 1 basicFile.csv | tr ',' '\n')
do
printf "%d:%s\n" "$COUNTER" "$h"
(( COUNTER++ ))
done
答案 3 :(得分:0)
这取决于,只是shell还是awk足够好?
% cat count_headers
cnt=1 ; head -n 1 "$1" | tr ',' '\n' | while read header ; do
printf "%d:%s\n" $cnt "$header"
cnt=$(($cnt+1))
done
% sh count_headers basicFile.csv
1:...
...
% awk -F, 'NR==1 {for(i=1;i<=NF;i++) print i ":" $i}' basicFile.csv
1:...
...
%