需要通过 bash 获得帮助
[edu@linux]$ tree test
test
├── 1dir
│ └── text.txt
├── 2dir
│ └── text.txt
└── 3dir
└── text.txt
3 directories, 3 files
[edu@linux]$ cat test/*/text.txt
testtext1
testtext2
testtext3
我如何在命令行中输出通过“*”屏蔽的目录名称,如下所示:
1dir testtext1
2dir testtext2
3dir testtext3
谢谢
答案1
和awk
:
awk 'FNR == 1 {split(FILENAME, parts, "/")}
{print parts[2], $0}' test/*/test.txt
也就是说,在每个文件的第一行,将文件名拆分到数组/
中parts
。
对于每一行,打印该数组的第二个元素以及完整记录 ( ),以(默认情况下为空格)$0
分隔。OFS