0

我有一个包含 1000 个文本文件的文件夹。我想从每个文件中提取第四列和第五列,并将其保存到另一个具有相同文件名的文件夹中。我怎么能用awkor做到这一点Bash

4

2 回答 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 回答