我有一个文件,其中包含列值周围不需要的双引号。我需要删除它们。有人可以帮我吗?
数据格式如下
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脚本来帮助我删除这些双引号吗?
答案 0 :(得分: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
或使用awk
&#39; gsub
功能:
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
答案 1 :(得分:0)
如果你可以使用sed,
$ sed 's/\"//g' file.txt > file_new.txt
答案 2 :(得分:0)
只需使用以下命令并在文件上运行即可。文件会自动修改。不需要临时文件进行重定向。
perl -pi -e 's/\"//g' infile