如何根据--checklist输出结果删除文本文件中的指定行
文本处理实现方法
根据你给出的期望输出结果,实际需要删除的是原文件中$500 Laptop和$50 Phone两行,不同环境下的实现方案如下:
Linux、macOS、WSL环境
方法1:sed命令(直接修改原文件)
# Linux/WSL执行 sed -i '/^\$500\s\|^\$50\s/d' 你的文件名.txt # macOS执行 sed -i '' '/^\$500\s\|^\$50\s/d' 你的文件名.txt
逻辑说明:匹配行开头为$500加空格、或者$50加空格的行,直接删除匹配到的内容。
方法2:awk命令(通用兼容性更高)
awk '!/^\$500\s/ && !/^\$50\s/' 你的文件名.txt > temp && mv temp 你的文件名.txt
逻辑说明:筛选出既不匹配$500开头、也不匹配$50开头的行,写入临时文件后替换原文件。
Windows 环境(PowerShell)
Get-Content 你的文件名.txt | Where-Object { $_ -notmatch '^\$500\s|^\$50\s' } | Set-Content 你的文件名.txt
逻辑说明:读取文件内容后过滤掉符合删除条件的行,重新写回原文件。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

