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