gpt4 book ai didi

linux - 如何使用linux命令替换tsv文件中的特定符号[如 ' , ^ ,\t'等]?

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:29 24 4
gpt4 key购买 nike

我正在尝试替换 tsv 文件中的某些符号组合,如下所示,

出现的 ^' 应替换为 Nothing/t' 的出现应替换为/t出现 ' 应替换为 Nothing

最后,我应该将任何单元格中的开始和结束 "替换为空,而任何单元格值中间出现的 "应保持不变。 [例如:“Apple iphone”应替换为 Apple iphone,而 7 英寸三星 LED 电视应保持不变]

示例文件:

7 英寸电视“Apple Iphone”\t' 印度\t' ^' 退出所有“PAPS”

如果将上面的行复制到 Excel 中,它将被复制到不同的列中。

我尝试过的代码:

sed "s/\^'//g" ${file}.txt > ${file}_new.txt
sed "s//t'//t/g" ${file}_new.txt > ${file}_new_1.txt

请帮我摆脱这个 friend 。

提前致谢。

最佳答案

虽然我仍然不完全理解你的问题,但你可能想要:

  • 使用 sed 指定多个过滤器
  • 确保特殊字符(例如,通常用于分隔搜索模式和替换模式的 /)被正确转义。

例如以下应该可以解决问题:

sed -e "s|/t'|/t|g" \
-e "s|[^]'||g" \
-e "s|'||g" \
-e 's|"\t"|\t|g' -e 's|^"||' -e 's|"$||' \
"${file}.txt" > "${file}_fixed.txt"

这是使用管道字符 | 而不是 / 来构造搜索/替换命令。它还直接使用 4 种不同的替换模式。顺序很重要:我们从要替换的最大块开始,逐渐使它们变小(因此我们在替换 ' 之前替换 ^')。最后一行是消除双引号的简单方法(首先删除列之间的 doublequote-tab-doubleqoute;然后删除任何前导或尾随双引号)

关于linux - 如何使用linux命令替换tsv文件中的特定符号[如 ' , ^ ,\t'等]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com