我们有一个文件,其标题格式为:
head_name_1 head_name_2 head_name_3 ... head_name_N
假设分隔符是一个制表符(所以如果我们以某种方式使用cut
命令我们不需要指定它)我想找到一个bash shell命令,在标准中打印以下内容输出:
head_name_1
head_name_2
head_name_3
...
head_name_N
假设我们事先不知道N(我知道如何在必要时找到它):
理想解决方案 :使用不需要明确计算N的命令。
替代解决方案 :首先找到N然后再做
for i in 1 ... N; do head -1 file | cut -f$i; done
我对第二个解决方案有一些问题:
while
语句递增$ i的值,但我的终端不能正确识别[]和[[]]进行比较。for
语句,我不知道如何生成从1到N的数字列表。答案 0 :(得分:6)
用换行符替换所有标签:
tr '\t' '\n' <file >new_file
答案 1 :(得分:1)
tr
非常简单。另一种解决方案:
head -1 file | xargs -d '\t' printf "%s\n"