2013-10-25 102 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