2010-11-17 58 views
0

有没有办法让awk不打印固定宽度的列?没有固定宽度格式的awk打印字符串?

例如:

"9", "TAYLOR TOWER, JACOB B. " 
"9", "UNIVERSITY HOSPITALS-EAST" 
"AR", "SCHOTTENSTEIN CENTER  " 
"B1", "NEWARK RESIDENCE HALL " 
"B2", "NEWARK RESIDENCE HALL " 
"CC", "OHIO STADIUM    " 
"D1", "TELECOM NETWORK CENTER " 
"DC", "SCHOTTENSTEIN CENTER  " 
"EN", "SCHOTTENSTEIN CENTER  " 
"GR", "UNIVERSITY HOSPITALS-EAST" 
"LL", "RANEY COMMONS, 2ND LT. AL" 
"MZ", "PHYSICS RESEARCH  " 
"MZ", "SCHOTTENSTEIN CENTER  " 
"NS", "STARLING LOVING HALL " 
"P1", "OHIO STADIUM    " 
"P2", "OHIO STADIUM    " 
"P3", "OHIO STADIUM    " 

我想这被打印为:

"9", "TAYLOR TOWER, JACOB B." 
"9", "UNIVERSITY HOSPITALS-EAST" 
"AR", "SCHOTTENSTEIN CENTER" 
"B1", "NEWARK RESIDENCE HALL" 
"B2", "NEWARK RESIDENCE HALL" 
"CC", "OHIO STADIUM" 
"D1", "TELECOM NETWORK CENTER" 
"DC", "SCHOTTENSTEIN CENTER" 
"EN", "SCHOTTENSTEIN CENTER" 
"GR", "UNIVERSITY HOSPITALS-EAST" 
"LL", "RANEY COMMONS, 2ND LT. AL" 
"MZ", "PHYSICS RESEARCH" 
"MZ", "SCHOTTENSTEIN CENTER" 
"NS", "STARLING LOVING HALL" 
"P1", "OHIO STADIUM" 
"P2", "OHIO STADIUM" 
"P3", "OHIO STADIUM" 

注意在本文中,第二字段具有引号内没有空格。这可能吗?

回答

1

在AWK(GAWK/NAWK)

{sub(/[ ]*\"$/, "\"");print} 
1

我会用sed,而不是awk的,尽管你可以,如果你必须做gsub在AWK:

sed -e 's/ *"$/"/' 

含义“打开一个或多个空格,然后报价在该行的末尾逼到报价“