2013-10-25 45 views
2

我试图删除所有的空格,但它没有使用它。AWK中的空白空格

awk -F, -v OFS=", " 'NR==1 { 
     print $0,"FILENAME,DATE_LOADED,TEST"; 
     next 
     } 
     {        
     line=$0 
     key=echo "${11//[[:space:]]/}" "${12//[[:space:]]/}" "${57//[[:space:]]/}" 
     key | getline 
     k=$0 
     cmd="md5 <<<"k 
     cmd | getline 
     md5sum=$0 
     print line, ENVIRON["FILE"], ENVIRON["ISODATE"], md5sum 
}' $FILE > $NAME"_ready.csv" 

如果我尝试这样会引发错误。我尝试了所有的选择,真的很茫然。

key=echo $11$12$57 | tr -d 
+1

1.您能举例说明一些输入数据和预期输出吗? 2.它必须是awk吗?你会喜欢一些shell或单行perl吗? – mvp

+1

一个简单的'echo“abc def”| tr -d'''也可以。 – anubhava

+0

@mvp它是在一个bash文件中,不知道我在awk函数里面调用perl。 – arve

回答

2
awk '{gsub(" +","");print $0}' test.text 

如果只想AWK基础的解决方案,然后这一个衬垫会从文件中删除所有的空格。

+0

对不起,这是行不通的。 键= AWK '{GSUB( “+”, “”);打印$ 11}' 我需要仅从VAR键 – arve

+0

请提供样品的输入和输出 – virus

+0

$ 12删除空格= '詹姆斯M' $ 13 = 'n brooks rd'$ 57 ='los angeles' 这些是从csv加载的列和每行更改的列。 这我需要哈希到一个MD5没有空格。 所以这就是'key = echo'$ {11 // [[:space:]] /}这个函数的一部分“”$ {12 // [[:space:]] /}“”$ {57// [[:space:]] /}“ key | getline k = $ 0 cmd =“md5 <<<”k' – arve