regex - 从第一个点之前的子字符串中删除双引号
问题描述
我之前问过一个问题,在该问题中我需要帮助从 . (点)。我很高兴收到了答案,但是我不确定它是如何工作的。
我现在正在尝试从 . (点)。我已经尝试通过反复试验来编辑原始命令,但是我没有太多运气,到目前为止,我已经离开了最接近的命令。
有人可以解释第一个命令的工作原理和原因,如果可能的话,请帮助我编辑我的尝试,以允许它从 . (点)。
原始命令 - 从点的右侧删除“”:
sed 's/\."\([^"]*\)"/.\1/g' file
样品之前:
"A".HELLO
A."HELLO"
"A"."HELLO"
要求的结果:
A.HELLO
A."HELLO"
A."HELLO"
试图:
sed -i 's/"*"\.\([^"]*\)"/.\1/g' $(2)
后:
"A".HELLO
A."HELLO"
"A.HELLO"
链接到原始帖子:UNIX Bash - 从文件中的特定字符串中删除双引号 感谢用户 potong 以获得原始答案。
解决方案
您能否尝试以下(如果您对 没问题awk
),用 GNU 中显示的示例编写和测试awk
。
awk 'BEGIN{FS=OFS="."} {gsub(/"/,"",$1)} 1' Input_file
说明:制作字段分隔符和输出字段分隔符,如章节.
中BEGIN
然后在主程序"
中,在第一个字段中全局替换为 NULL,因为我们已经将.
其作为字段分隔符,并且 OP 想要删除"
双引号,.
因此只取第一个字段就可以了。1
将打印 Input_file 的当前行。
推荐阅读
- asp.net-core - 使用 UserManager 在 Timer 中不起作用
- ms-access - 多个用户可以同时编辑一个 Access 数据库吗?
- ios - objc_copyClassList:更新到 iOS 13.4 / XCode 11.4 后崩溃 EXC_BAD_INSTRUCTION
- raku - 检查字符串是否包含子字符串。此外,获取索引和匹配数(Raku)
- html - 为什么我的按钮宽度适用于整个屏幕?
- sql - Snowflake - 在使用窗框或订单时获取不同用户的计数
- angular - 你通常把你的打字稿类定义放在哪里?
- azure - Azure 逻辑应用中的 Liquid Maps 问题
- android - 如何选择 AOSP 重力传感器而不是获得三星的实施?
- python - python glob 或 listdir 创建然后将文件从一个目录保存到另一个