如何使用命令替换.txt文件中指定位置的字符
替换.txt文件第8列单个字符的快速方案
终端方案
- 按空格/制表符分隔的字段列替换(awk):
把所有行第8个字段替换为目标字符X,执行命令:awk '{ $8 = "X" }1' 原文件.txt > 新文件.txt
如果需要直接修改原文件,GNU awk 4.1+版本可以加-i inplace参数:awk -i inplace '{ $8 = "X" }1' 原文件.txt - 按固定字符位置替换(第8个字符,不管分隔符):
用awk实现:awk '{ print substr($0,1,7) "X" substr($0,9) }' 原文件.txt > 新文件.txt
用GNU sed实现(加-i直接修改原文件):sed -i 's/^\(.\{7\}\)./\1X/' 原文件.txt
文本编辑器方案
- Vim/Neovim:打开文件后按
:进入命令模式,执行全局替换::%s/^\(.\{7\}\)./\1X/
按回车后所有行第8个字符就会被替换为X - 支持正则替换的通用编辑器(VS Code、Sublime Text、Notepad++等):
开启查找替换的正则匹配功能,查找内容填^(.{7}).,替换内容填$1X,执行全部替换即可。
提示:以上所有示例中的
X可替换为你实际需要写入的目标字符,修改原文件前建议提前备份避免数据错误。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

