用awk删除空白
问题描述:
我在形式的文件:
Firstname LastName; 123-4567; Job Title
Firstname LastName; 123-4567; Job Title
Firstname LastName; 123-4567; Job Title
...
我想使用awk来解析该文件由成makedbm的读取的形式(以使自定义NIS映射)。字段分隔符是一个分号。我需要能够从每个字段在每一行中删除所有前导空格,但留下的空间在名称字段和标题字段。谢谢你。
I am trying to use awk to parse the file into a form readable by makedbm (to make a custom NIS map). Field separator is a semicolon. I need to be able to remove all leading whitespace from each field on each line, but leave the spaces in the name field and the title field. Thanks.
答
如果你想删除的 来自各个领域的前导空格
并保持 中的姓名和职位字段之间的空间
,然后你可以做这样的事情 -
If you wish to remove leading space from all fields
and keep the space in between the Names and Job title fields
then you can do something like this -
awk -F";" -v OFS=";" '{for (i=1;i<=NF;i++) gsub (/^ */,"",$i);print}' INPUT_FILE
测试:
[jaypal:~/Temp] cat file
Firstname LastName; 123-4567; Job Title
Firstname LastName; 123-4567; Job Title
Firstname LastName; 123-4567; Job Title
[jaypal:~/Temp] awk -F";" -v OFS=";" '{for (i=1;i<=NF;i++) gsub (/^ */,"",$i);print}' file
Firstname LastName;123-4567;Job Title
Firstname LastName;123-4567;Job Title
Firstname LastName;123-4567;Job Title