我想运行这些sed行:
sed 's/\/1\/1/\/1/g' file -i && sed 's/\/2\/2/\/2/g' file -i
Run Code Online (Sandbox Code Playgroud)
在这样的文件上:
chr9_paternal 126628489 126629719 616L7AAXX_HWUSI-EAS627_0005:1:1:1157:5733/1/1 0 + 126628489 126629719 255,0,0 2
19,57 0,1173
chr20_paternal 34093622 34093697 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:4527/1/1 0 + 34093622 34093697 255,0,0 1
75 0
chr17_paternal 44627748 44633513 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:5412/2/2 0 + 44627748 44633513 255,0,0 2
36,40 0,5725
chr1_paternal 224204536 224204611 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:2312/1 0 + 224204536 224204611 255,0,0 1
75 0
chr7_paternal 132309510 132309585 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:1687/2/2 0 + 132309510 132309585 255,0,0 1
75 0
chr20_paternal 45708069 45708144 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:13916/1 63 + 45708069 45708144 255,0,0 1
75 0
chr9_paternal 134850662 134850737 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:10141/1/1 72 + 134850662 134850737 255,0,0 1
75 0
chrX_paternal 71603273 71603348 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:8367/2 30 + 71603273 71603348 255,0,0 1
Run Code Online (Sandbox Code Playgroud)
为了得到这个输出:
chr9_paternal 126628489 126629719 616L7AAXX_HWUSI-EAS627_0005:1:1:1157:5733/1 0 + 126628489 126629719 255,0,0 2
19,57 0,1173
chr20_paternal 34093622 34093697 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:4527/1 0 + 34093622 34093697 255,0,0 1
75 0
chr17_paternal 44627748 44633513 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:5412/2 0 + 44627748 44633513 255,0,0 2
36,40 0,5725
chr1_paternal 224204536 224204611 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:2312/1 0 + 224204536 224204611 255,0,0 1
75 0
chr7_paternal 132309510 132309585 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:1687/2 0 + 132309510 132309585 255,0,0 1
75 0
chr20_paternal 45708069 45708144 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:13916/1 63 + 45708069 45708144 255,0,0 1
75 0
chr9_paternal 134850662 134850737 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:10141/1 72 + 134850662 134850737 255,0,0 1
75 0
chrX_paternal 71603273 71603348 616L7AAXX_HWUSI-EAS627_0005:1:1:1158:8367/2 30 + 71603273 71603348 255,0,0 1
Run Code Online (Sandbox Code Playgroud)
但文件很大,我不想读两遍.可以运行一次执行两条指令的sed代码吗?
如果我理解正确的话,你想替换/1/1为/1和 同样,替换/2/2为/2:
sed -i 's:/1/1:/1:;s:/2/2:/2:' file
Run Code Online (Sandbox Code Playgroud)
使用冒号:代替,/这样可以避免转义。