You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sed命令删除文件双引号并提取首个单词前缀?

解决你的两个sed文本处理问题

嘿,让我们一步步搞定你遇到的sed问题:

1. 删除文件中所有双引号

你之前用的sed 's/"//'只替换了每行第一个双引号,这是因为sed的替换默认只处理每行的首次匹配。要删除所有双引号,需要加上全局替换标志g:

sed 's/"//g' CITFFUSKD-E0

如果想要直接修改原文件(原地编辑),可以加上-i参数(注意:BSD/macOS系统的sed需要写成sed -i '' 's/"//g' CITFFUSKD-E0):

# Linux系统
sed -i 's/"//g' CITFFUSKD-E0

# macOS/BSD系统
sed -i '' 's/"//g' CITFFUSKD-E0

这个命令会遍历文件的每一行,把所有双引号都替换为空(也就是删除)。

2. 删除首个单词后的所有内容

看你的示例,不管分隔符是-、_还是空格,都要保留开头的CITFFUSKD部分。这里可以用两种思路:

方法一:匹配首个非字母数字字符及后续内容删除

这个方法最通用,不管分隔符是什么,只要是第一个非字母数字的字符,就删掉它和后面的所有内容:

sed 's/[^[:alnum:]].*//' 你的文件名

解释:

  • [^[:alnum:]]:匹配第一个非字母(a-z/A-Z)或数字(0-9)的字符
  • .*:匹配该字符后面的所有内容
  • 替换为空字符串,就只剩下开头的连续字母数字部分

方法二:指定分隔符删除

如果你确定分隔符只有-、_、空格这几种,可以直接匹配这些字符及后续内容:

sed 's/[-_ ].*//' 你的文件名

测试一下你的示例:

  • 输入 "CITFFUSKD-E0" → 输出 CITFFUSKD
  • 输入 "CITFFUSKD_E0" → 输出 CITFFUSKD
  • 输入 "CITFFUSKD E0" → 输出 CITFFUSKD

完全符合你的需求!

内容的提问来源于stack exchange,提问作者sundrys1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:57:15