我有一个包含 1000 个文本文件的文件夹。我想从每个文件中提取第四列和第五列,并将其保存到另一个具有相同文件名的文件夹中。我怎么能用awk
or做到这一点Bash
?
问问题
186 次
2 回答
5
由于您没有指定字段分隔符,我假设为默认(空格)字段分隔符。
awk '{print $4,$5>"/tmp/another_directory/"FILENAME}' *
于 2012-10-23T11:47:46.933 回答
0
使用 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/
在当前目录中。
于 2012-10-23T13:12:12.667 回答