gpt4 book ai didi

unix - 在 AWK 中去除开头的空白和尾随的空白

转载 作者:行者123 更新时间:2023-12-05 09:28:50 31 4
gpt4 key购买 nike

我请求您帮助去除每个字段之前和末尾的空白/空格。即,在 AIX 7.2 平台上使用 AWK,删除 $1 中的尾随空格,这同样适用于 $2 中的开头和尾随空格,以及 $3 中的前导空格。以下是文件 Employee.txt 中的一些数据

001 |  George John Aden Brown   | gbrown
002 | Barry Street White | bwhite
003 | Kelly Jones | kjones
004 | Jolene Davidson Smith | jsmith

我的目标是获得以下数据集(没有前导/尾随空格)

001|George John Aden Brown|gbrown
002|Barry Street White|bwhite
003|Kelly Jones|kjones
004|Jolene Davidson Smith|jsmith

我尝试了以下方法,但并不满意。

awk -F"|" '{ print $1 "|" gsub(" ", "", $2) "|" $3 }' Employee.txt
awk -F"|" '{ print $1 "|" gsub(/[ \t]/,"",$2) "|" $3 }' Employee.txt
awk -F"|" '{ print $1 "|" gsub(/[[:blank:]]/, "", $2) "|" $3 }' Employee.txt

001 |8| gbrown
002 |11| bwhite
003 |17| kjones
004 |8| jsmith

最佳答案

我通常 - 而且很多:

$ awk '
BEGIN {
FS=OFS="|" # set both separators to pipe
}
{
for(i=1;i<=NF;i++) # loop all fields
gsub(/^ +| +$/,"",$i) # strip leading and trailing space
}1' file # output

输出:

001|George John Aden Brown|gbrown
002|Barry Street White|bwhite
003|Kelly Jones|kjones
004|Jolene Davidson Smith|jsmith

如果你在那里有其他垃圾,请随时调整正则表达式:

gsub(/^"?[ \t]*(N\/A)?|[ \t]*"?$/),"",$i)  # etc

关于unix - 在 AWK 中去除开头的空白和尾随的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71060136/

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