我很不熟悉awk
,但我正在尋找一種方法來遍歷目錄中的所有文件並執行簡單的awk
命令。我的命令是一個簡單的替換,它用兩個空格替換所有的選項卡。使用awk遍歷文件列表?
awk '{gsub("\t"," ");print}'
這怎麼能擴展到循環目錄並執行所有文件的命令?
我很不熟悉awk
,但我正在尋找一種方法來遍歷目錄中的所有文件並執行簡單的awk
命令。我的命令是一個簡單的替換,它用兩個空格替換所有的選項卡。使用awk遍歷文件列表?
awk '{gsub("\t"," ");print}'
這怎麼能擴展到循環目錄並執行所有文件的命令?
的文件傳遞給AWK當然,在命令行:`
$ awk 'program' *
,不過也許它更容易使用
$ perl -pe 's/\t/ /g' *
或者,如果您希望有一個就地版它,簡單地說:
$ perl -i.orig -pe 's/\t/ /g' *
你可以用一個awk
命令
awk -F"\t" '{$1=$1;print $0 >FILENAME}' OFS=" " file
做Heisenbug的想法
find . -type f -exec awk '{gsub("\t"," ");print}' {} \;
它避免調用諸如xargs的另一個程序的改進版本。我做了一些測試似乎有點快。
你知道嗎,如果perl被用來連接另一個替代ex。 'awk'{gsub(「\ t」,「」); print}'| sed「s/foo/bar/g」'?如果是這樣,那麼perl可能是你說的最好的解決方案。 – drbunsen
@ dr.bunsen:是的,當然,只是用分號分隔命令:'perl -pe's/\ t// g; s/foo/bar/g'' – tchrist
謝謝!我認爲生病開始嘗試學習Perl,這些命令作爲一個線程真的很方便! – drbunsen