![반복적으로 디렉터리 이름을 *로 바꿉니다.](https://linux55.com/image/216070/%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20*%EB%A1%9C%20%EB%B0%94%EA%BF%89%EB%8B%88%EB%8B%A4..png)
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