【问题标题】:Remove double quotes from txt file从txt文件中删除双引号
【发布时间】:2017-02-07 12:56:46
【问题描述】:

我有一个文件,其中包含列值周围不需要的双引号。我需要删除它们。有人可以帮我解决这个问题吗?

数据格式如下

column1 date picture value "A" "2016-06-02" "books" 932422 "B" "2016-06-03" "movies" 934735 "C" "2016-06-04" "vidoes" 936025 "D" "2016-06-05" "movies" 937620 "E" "2016-06-06" "dvd" 938972 "F" "2016-06-07" "vidoes" 940274

我希望数据是这样的:

column1 date picture value A 2016-06-02 books 932422 B 2016-06-03 movies 934735 C 2016-06-04 vidoes 936025 D 2016-06-05 movies 937620 E 2016-06-06 dvd 938972 F 2016-06-07 vidoes 940274

请注意,第 4 列属性周围没有双引号。

有人可以帮我用一行 shell 脚本删除这些双引号吗?

【问题讨论】:

标签: shell


【解决方案1】:

只需使用以下命令并在文件上运行它。文件会自动修改。不需要临时文件进行重定向。

 perl -pi -e 's/\"//g' infile

【讨论】:

    【解决方案2】:

    如果你可以使用 sed,

    $ sed 's/\"//g' file.txt > file_new.txt
    

    【讨论】:

      【解决方案3】:
       tr -d '"' <infile
      column1   date        picture      value
      A    2016-06-02    books      932422
      B    2016-06-03    movies     934735
      C    2016-06-04    vidoes     936025
      D    2016-06-05    movies     937620
      E    2016-06-06    dvd        938972
      F    2016-06-07    vidoes     940274
      

      或者使用awk

      awk -F\" '{$1=$1}1' infile
      column1   date        picture      value
       A      2016-06-02      books       932422
       B      2016-06-03      movies      934735
       C      2016-06-04      vidoes      936025
       D      2016-06-05      movies      937620
       E      2016-06-06      dvd         938972
       F      2016-06-07      vidoes      940274
      

      或使用sed

       sed 's/"//g' infile
      column1   date        picture      value
      A    2016-06-02    books      932422
      B    2016-06-03    movies     934735
      C    2016-06-04    vidoes     936025
      D    2016-06-05    movies     937620
      E    2016-06-06    dvd        938972
      F    2016-06-07    vidoes     940274
      

      或者使用awkgsub函数:

      awk '{gsub(/"/,"")}1' infile
      column1   date        picture      value
      A    2016-06-02    books      932422
      B    2016-06-03    movies     934735
      C    2016-06-04    vidoes     936025
      D    2016-06-05    movies     937620
      E    2016-06-06    dvd        938972
      F    2016-06-07    vidoes     940274
      

      【讨论】:

      • 太棒了!为了您的快速响应。我实际上也想出了使用 sed 的解决方案并且它有效。但是,从您的最终获得差异解决方案是有帮助的
      猜你喜欢
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2022-01-17
      • 2022-01-20
      • 2017-11-10
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多