我很不熟悉awk
,但是我正在寻找一种方法来遍历目录中的所有文件,并执行一个简单的awk
命令。 我的命令是一个简单的replace,用两个空格replace所有的选项卡。
awk '{gsub("\t"," ");print}'
这怎么能扩展到循环目录并对所有文件执行命令?
把文件传给awk ,当然在命令行上:`
$ awk 'program' *
但可能它使用起来更简单
$ perl -pe 's/\t/ /g' *
或者,如果您想要进行现场编辑,只需:
$ perl -i.orig -pe 's/\t/ /g' *
一个改进的Heisenbug的想法
find . -type f -exec awk '{gsub("\t"," ");print}' {} \;
它避免了调用像xargs这样的另一个程序。 我做了一些测试似乎有点快。
使用find和将输出重定向到awk:
find . -type f | xargs awk '{gsub("\t"," ");print}'
你可以用一个awk
命令来完成
awk -F"\t" '{$1=$1;print $0 >FILENAME}' OFS=" " file