반복적으로 디렉터리 이름을 *로 바꿉니다.

반복적으로 디렉터리 이름을 *로 바꿉니다.

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

관련 정보