我有逗号分隔的文件,我想以相同的拆分条件将第 15 列拆分为 $NF(第 15 列到最后一列)split($column,a,"-")
并为每个拆分的列打印 a[1]
.我不能循环从第 n 列到最后一列并为每个列打印。
awk -F',' -v OFS="\t" '{for(i;$15<i<$NF,i+1);split($i,a,"_"); print ???}' file.csv
文件打印表格第 15 列的示例:NBPF1-chr1-16579269-16579502-MedEx,NBPF1-chr1-16580779-16580863-MedEx,NBPF1-chr1-16581333-16581592-MedEx,NBPF1-chr1-16582457-16582758-MedEx,NBPF1-chr1-16583499-16583796-MedEx
我的期望:NBPF1,NBPF1,NBPF1,NBPF1,NBPF1,NBPF1
谢谢你。
最佳答案
使用您展示的 sample ,请尝试关注 awk
代码。更改 i=15
或者任何你想从哪里开始循环直到当前行的最后一个字段的字段 awk
代码。
awk '
BEGIN{
FS=OFS=","
}
{
value=""
for(i=1;i<=NF;i++){
split($i, a, /-/)
value=(value?value OFS:"")a[1]
}
print value
}
' Input_file
关于loops - awk 拆分更多列并打印第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68486310/