我有一个带有1000个文本文件的文件夹。我想从每个文件中提取第四和第五列,并将其保存到具有相同文件名的另一个文件夹中。我该如何使用awk
或Bash
?
由于您尚未指定有关字段分离器的指定,因此我假设是默认(空格)字段分隔符。
awk '{print $4,$5>"/tmp/another_directory/"FILENAME}' *
带有gnu find和gnu sed,假设空间分离的列和要处理的文件在当前目录中:
mkdir tmp/
find . -maxdepth 1 -type f -print0 |
xargs -0 -l /bin/sh -c 'sed -r "s/([^ ] *){3}([^ ]) *([^ ]*).*/2 3/" "$1" > "tmp/$1"' ''
请注意,最后一对单引号很重要,它们是占位符,因此文件名正确传递给sh
。处理的文件保存在当前目录中的tmp/
中。