我很不熟悉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