如何基于指定条件替换行内容:保留前缀为AMG的行的前缀字段
需求实现方案
你可以根据自己使用的工具场景选择对应实现方式:
1. Shell 环境(批量处理文本文件)
sed 命令实现
# 仅输出修改后的内容,不修改原文件 sed 's/^AMG.*$/AMG/' 目标文件路径 # 直接修改原文件的写法 sed -i 's/^AMG.*$/AMG/' 目标文件路径
逻辑说明:正则匹配所有以AMG开头的行,将整行替换为AMG,不匹配的行原样输出。如果需要忽略行首的空格/制表符再匹配,把正则调整为s/^\s*AMG.*$/AMG/即可。
awk 命令实现
awk '/^AMG/ {print "AMG"; next} 1' 目标文件路径
逻辑说明:检测到行开头为AMG时仅输出AMG,其余行直接输出。
2. Python 代码实现
with open("目标文件路径", "r", encoding="utf-8") as f: lines = f.readlines() res = [] for line in lines: # 不需要忽略行首空白就删掉.lstrip() if line.lstrip().startswith("AMG"): res.append("AMG\n") else: res.append(line) # 处理结果写回文件 with open("目标文件路径", "w", encoding="utf-8") as f: f.writelines(res)
3. JavaScript 实现
function processAmgLines(text) { return text.split('\n').map(line => { // 不需要忽略行首空白就删掉.trimStart() return line.trimStart().startsWith('AMG') ? 'AMG' : line }).join('\n') }
内容的提问来源于stack exchange,提问作者nikita1221
相关产品推荐
相关产品推荐

