从 CSV 文件中的特定列中删除空格
Removing spaces from specific column in CSV file
我有一个包含如下行的 csv 文件:
300001;Company Name;023-1 2 3 4 5 6 7;023-3 2 4 6 43
4;email@test.com;;;;Street Name;184;;Postal Code;City
我想去掉第 3 列和第 4 列(phone 和传真号码)的空格,使其看起来像这样:
300001;Company Name;023-1234567;023-3246434;email@test.com;;;;Street
Name;184;;Postal Code;City
我尝试了在 Whosebug 上找到的这些 awk 代码(用于第 3 列),但没有成功:
awk -v FS=OFS=";" '{gsub(/ /,"",)} 1' file.csv > test.csv
awk -F, ' ~ / / { OFS= ";"; = ""; } 1' file.csv > test.csv
我已经用谷歌搜索了半天,但找不到任何有用的东西。
试试这个:
awk 'BEGIN{FS=OFS=";"} {gsub(/ /,"",); gsub(/ /,"",)}1' File
我们将输入和输出字段分隔符设置为;
。然后用 nothing
替换 3rd
和 4th
字段中的空格。希望对你有帮助。
正如其他人已经提到的,使用 -v
一次设置 FS 和 OFS (FS=OFS=";"
) 是它在您的情况下不起作用的原因。我将其移动到 BEGIN
块。就是这样。
问题是您不能一次设置 FS
和 OFS
。将两者分开为
$ awk -vFS=";" -vOFS=";" '{gsub(" ","",); gsub(" ", "", ) }1' input
300001;Company Name;023-1234567;023-3246434;email@test.com;;;;Street Name;184;;Postal Code;City
您的问题原因是 -v FS=OFS=";"
您可以使用:
awk -F';' -v OFS=";" '...'
或
awk 'BEGIN{FS=OFS=";"} ...'
其他代码看起来没问题,只是你忘记了column4。这条线应该有效:
awk -F';' -v OFS=";" 'gsub(/ /,"",)+gsub(/ /,"",)+7' file
我有一个包含如下行的 csv 文件:
300001;Company Name;023-1 2 3 4 5 6 7;023-3 2 4 6 43 4;email@test.com;;;;Street Name;184;;Postal Code;City
我想去掉第 3 列和第 4 列(phone 和传真号码)的空格,使其看起来像这样:
300001;Company Name;023-1234567;023-3246434;email@test.com;;;;Street Name;184;;Postal Code;City
我尝试了在 Whosebug 上找到的这些 awk 代码(用于第 3 列),但没有成功:
awk -v FS=OFS=";" '{gsub(/ /,"",)} 1' file.csv > test.csv
awk -F, ' ~ / / { OFS= ";"; = ""; } 1' file.csv > test.csv
我已经用谷歌搜索了半天,但找不到任何有用的东西。
试试这个:
awk 'BEGIN{FS=OFS=";"} {gsub(/ /,"",); gsub(/ /,"",)}1' File
我们将输入和输出字段分隔符设置为;
。然后用 nothing
替换 3rd
和 4th
字段中的空格。希望对你有帮助。
正如其他人已经提到的,使用 -v
一次设置 FS 和 OFS (FS=OFS=";"
) 是它在您的情况下不起作用的原因。我将其移动到 BEGIN
块。就是这样。
问题是您不能一次设置 FS
和 OFS
。将两者分开为
$ awk -vFS=";" -vOFS=";" '{gsub(" ","",); gsub(" ", "", ) }1' input
300001;Company Name;023-1234567;023-3246434;email@test.com;;;;Street Name;184;;Postal Code;City
您的问题原因是 -v FS=OFS=";"
您可以使用:
awk -F';' -v OFS=";" '...'
或
awk 'BEGIN{FS=OFS=";"} ...'
其他代码看起来没问题,只是你忘记了column4。这条线应该有效:
awk -F';' -v OFS=";" 'gsub(/ /,"",)+gsub(/ /,"",)+7' file