[英]Unix shell: get each header of a file in one line
讓我們有一個文件頭,其格式為:
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的數字列表。 要用換行符替換所有標簽:
tr '\t' '\n' <file >new_file
tr
真的很簡單。 替代解決方案:
head -1 file | xargs -d '\t' printf "%s\n"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.