把當前文件夾的文件名用","連接成一行,或者將多行轉變為一行 將行逆序輸出 刪除 開頭的註釋行 去掉每行開頭4個字元 對文件第一列進行統計 對文件第四列用":"切割成兩列並將最後一列結果+1,然後輸出全部列 對文件第二列求均值 實現DNA序列反向互補 某一行插入另外一個文件的內容 對一個文件按照第一 ...
把當前文件夾的文件名用","連接成一行,或者將多行轉變為一行
ls | paste -s -d "," # -s 選項將輸入進行一次性粘貼
ls | xargs | sed 's/ /,/g' #xargs 將輸入作為參數(空格分隔)傳入
ls | awk '{printf "%s,",$0}'
將行逆序輸出
sed '1!G;h;$!d’'file # 1!G 第一行不執行G命令,從第二行開始執行;$!d 最後一行不刪除;第一行自動存入模式空間,將模式空間內容(第一行)放到保持空間(h),然後刪除模式空間內容(d,否則它會自動輸出),第二行自動存入模式空間,(開始用G)將保持空間(第一行內容)接到模式空間(第二行)後,將當前模式空間(第二行+第一行)放到保持空間(h),然後刪除當前模式空間(d),依次類推,最後一行不刪除模式空間,再自動輸出模式空間內容
刪除#開頭的註釋行
sed '/^#.*/d' test.txt
去掉每行開頭4個字元
cut -c 4- test.csv
對文件第一列進行統計
awk -F "," '{count[$1]++} END{for (record in count) print record,count[record] }' test.csv #count[$1]++創建關聯數組count[$1]併進行計數
對文件第四列用":"切割成兩列並將最後一列結果+1,然後輸出全部列
awk -F "," '{split($4,array,":");print $1,$2,$3,array[1],array[2]+1}' test.csv #split切割$4存到數組array中,array[1]和arrya[2]即為切割後的兩個區域
對文件第二列求均值
awk -F "," '{sum+=$2} END {print "Average = ", sum/NR}' test.csv
實現DNA序列反向互補
cat seq.txt | sed 'y/ATGC/TACG/' |rev
某一行插入另外一個文件的內容
sed '2 r a.txt' test.csv
對一個文件按照第一列進行篩選,篩選條件是必須在另外一個文件的第一列出現過
awk -F "," '{if(NR==FNR){count[$1]=1}else if(count[$1]==1){print $0}}' chr.txt test.csv #將第一個文件第一列的值存入關聯數組,並給值為1,如果第二個文件建立的關聯數組對應值為1,說明在第一個文件第一列出現過,則輸出整行
對文件第二列和第三列進行展開
展開前四列
展開後成為三列
awk -F "," '{for (i=$2;i<=$3;i++) {print $1,i,$4}}' test.csv