Sys*_*tem 9 sed awk text-processing
我有这样的数据:
chr1 134901 139379 - "ENSG00000237683.5";
chr1 860260 879955 + "ENSG00000187634.6";
chr1 861264 866445 - "ENSG00000268179.1";
chr1 879584 894689 - "ENSG00000188976.6";
chr1 895967 901095 + "ENSG00000187961.9";
Run Code Online (Sandbox Code Playgroud)
我通过解析 GTF 文件生成
如果可能,我想使用 awk 或 sed 从第 5 列中删除"
's 和;
's。结果如下所示:
chr1 134901 139379 - ENSG00000237683.5
chr1 860260 879955 + ENSG00000187634.6
chr1 861264 866445 - ENSG00000268179.1
chr1 879584 894689 - ENSG00000188976.6
chr1 895967 901095 + ENSG00000187961.9
Run Code Online (Sandbox Code Playgroud)
使用gsub
:
awk '{gsub(/\"|\;/,"")}1' file
chr1 134901 139379 - ENSG00000237683.5
chr1 860260 879955 + ENSG00000187634.6
chr1 861264 866445 - ENSG00000268179.1
chr1 879584 894689 - ENSG00000188976.6
chr1 895967 901095 + ENSG00000187961.9
Run Code Online (Sandbox Code Playgroud)
如果你想操作仅在第五场和保存在其他领域的任何报价或分号:
awk '{gsub(/\"|\;/,"",$5)}1' file
Run Code Online (Sandbox Code Playgroud)
如果您的数据的格式完全如图所示(即没有其他"
或;
其他需要保留的列),那么您可以简单地使用tr
删除这些字符:
tr -d '";' < input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)