1
A
回答
0
在sed使用以下模式:sed 's/old/new/<number>'
哪裏<number>
是希望應用這種模式的次數。
您可以將<number>
替換爲g
以將模式應用於所有事件。
1
桑達真的不支持的「第一ñ事件」,只有「ñ個發生」的概念; GNU sed有一個用於「替換第 -th on」的所有匹配,這不是你想要的在這種情況下。爲了得到前六個逗號代替,你必須調用s
命令六次:
sed 's/,/|/;s/,/|/;s/,/|/;s/,/|/;s/,/|/;s/,/|/' infile
但是,如果你知道有文件中沒有|
,你有GNU sed的,你可以這樣做:
sed 's/,/|/g;s/|/,/7g' infile
這將替換所有逗號與管道,然後從背部到逗號7日開啓的管道。
如果做有事先的管道,你可以把它們變成你知道自己是不是在字符串中第一個:
sed 's/|/~~/g;s/,/|/g;s/|/,/7g;s/~~/|/g' infile
這使得所有|
到~~
第一,那麼所有,
到|
,然後將|
從第7個回到,
,最後將~~
回到|
。
測試此輸入文件:
,,,,,,X,,,,,,
,,,|,,,|,,,|,,,|
第一和第三命令結果
,因爲已經有管道符第二個將失敗,在第二行。
0
你可以試試這個sed
,
sed -r ':loop; s/^([^,]*),/\1|/g; /^([^|]*\|){6}/t; b loop' file
(OR)
sed ':loop; s/^\([^,]*\),/\1|/g; /^\([^|]*|\)\{6\}/t; b loop' file
測試:
$ cat file
a,b,c,d,e,f,g,h,i,j,k
$ sed -r ':loop; s/^([^,]*),/\1|/g; /^([^|]*\|){6}/t; b loop' file
a|b|c|d|e|f|g,h,i,j,k
注:如果你不這樣只會工作有任何管道(|
)。
1
這可能會爲你工作(GNU SED):
sed 'y/,/\n/;s/\n/,/7g;y/\n/|/' file
翻譯所有,
年代到\n
的,然後通過,
「從第七\n
到線的末端取代S,則更換剩下的\n
的|
的s。
相關問題
- 1. SSIS逗號替換文本文件
- 2. 替換換行符每三個逗號
- 3. 用逗號替換後六個空格
- 4. 六,替換文本
- 5. 在csv文件中替換逗號
- 6. Shell腳本 - 用換行符替換每5個逗號
- 7. 正則表達式用換行符替換第六個逗號
- 8. 在每行中計算逗號並在文本文件中顯示行號
- 9. 如何用換行符替換每個第三個逗號?
- 10. Python解析csv文件 - 用逗號替換逗號
- 11. 用逗號替換每行中的第一個空格
- 12. 如何在Linux中用逗號替換文本文件中多餘的空格
- 13. 刪除第二個逗號前面的文本('',「)字符串替換模式
- 14. 替換python文本文件中的行
- 15. 替換文本文件中的一行
- 16. Python替換文本文件中的行
- 17. 如何替換每行文本文件中的內容?
- 18. 使用C替換文本文件中的每一行C
- 19. 通過PowerShell替換文件每行的前兩個字符
- 20. Java的文本文件轉換爲逗號分隔的文件
- 21. 如何刪除文件中每行的第一個逗號
- 22. 使用java替換文本文件中的行號
- 23. 打開txt文件並替換前兩行中的文本(C#)
- 24. 打開目錄中的每個文本文件,然後替換每個文件中的特定行
- 25. 在子文件夾中的每個單個文件中替換一些文本
- 26. 在Textmate中用逗號替換逗號
- 27. 如何在ColdFusion中替換.xlsx文件中的逗號?
- 28. 從另一個文本文件中替換文本文件中的行
- 29. CSV文件中的逗號逗號
- 30. 用java轉義引用替換文件中的每個引號
不,「」用於「只替換正則表達式的numberth匹配」。 –