批处理之家's Archiver

dingniu2 发表于 2020-3-19 15:37

请教批量提取文件中数字排序如何显示这个数字来自哪个文件呢?

如题,一个文件夹中有100多个文件,这100多个文件都有一个特定字符(V=),这个特定字符后都有一串数值(每个文件的数值不同)。目的要将这串数值从小到大排序,但我写的这个命令grep -w '\V=' *.log | awk -F V= '{print $NF}' | awk '{printf "%13.6f \n", $1 }' | sort -n只能将数值排大小,不能显示每个数值来自于哪个文件的文件名,请各位大神指教,非常感谢!!!

Gin_Q 发表于 2020-3-19 17:49

[i=s] 本帖最后由 Gin_Q 于 2020-3-19 19:25 编辑 [/i]

[code]#!/bin/bash
for a in `ls *.txt`
do
    grep -o -E "V=[0-9]{1,100}" $a | awk -v fname=$a '{printf "%s %s\n" ,$1,fname}' | sort -n
done
[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.