[英]extract columns with Bash or awk
我有一个包含1000个文本文件的文件夹。 我想从每个文件中提取第四列和第五列,并将其保存到具有相同文件名的另一个文件夹中。 如何使用awk
或Bash
做到这一点?
由于您尚未指定字段分隔符,因此我假设它是default(space)字段分隔符。
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/
中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.