디자인을 로딩할때 파일 리스트를 하나 만들어 두면 편하다.
여러 폴더로 막 나누어서 관리하면 리스트를 뽑아 내려고 계속 ls 해서 텍스트 추출해서 정리하고 쉽지 않다.
간단하게 *.v 파일을 찾아서 파일리스트 텍스트 파일로 만들어 주는 명령어 셋을 소개
find /path/to/top/directory -name "*.v" > filelist.f
결과는 아래처럼 이렇게 파일 목록이 filelist.f 로 저장된다.
RTL/SYSREG/CL\_3.src.v
RTL/SYSREG/CL\_3.v
RTL/SYSREG/REG0.v
RTL/SYSREG/REG1.v
RTL/SYSREG/REG2.v
RTL/SYSREG/REG3.v
혹시나 ls 에서 파일명만 뽑아 내고 싶다면,
명령어 출력에서 파일 이름만을 뽑아내기 위해 awk
명령어를 사용할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다:
ls -al | awk '{print $9}'
이 명령어는 ls -al
의 결과에서 각 줄의 아홉 번째 필드(일반적으로 파일명을 나타냄)를 출력합니다. 추가적인 옵션을 사용하여 더 복잡한 조건의 파일명을 추출할 수도 있습니다.
복수개의 확장자 파일 리스트 만들기
만약 여러 확장자의 파일을 찾아 하나의 파일 리스트로 만들고 싶다면, find
명령어를 조금 더 확장하여 사용할 수 있습니다. 다음과 같은 방법으로 .v
및 .sv
확장자를 가진 파일을 찾아 리스트를 만들 수 있습니다:
find /path/to/top/directory \( -name "*.v" -o -name "*.sv" \) > filelist.f
이 명령어는 주어진 경로 및 그 하위 디렉토리에서 .v
와 .sv
확장자를 가진 파일을 찾아 filelist.f
파일에 저장합니다. -o
옵션은 OR 조건을 나타내어 두 조건 중 하나라도 만족하는 파일을 찾습니다. 이렇게 생성된 filelist.f
파일은 시뮬레이션 및 검증 도구에서 사용할 수 있는 입력 파일로 활용될 수 있습니다.
bash 스크립트 만들기
파일리스트를 생성해 주는 Bash 스크립트를 구성해봤다. ChatGPT 작품이다 당연하게도
사용법은 다음과 같다.
Usage: ./scriptname.sh /path/to/directory v sv vh
Where /path/to/directory is the directory to start searching
and v, sv, vh are the file extensions to search for.
#!/bin/bash
# Usage: ./scriptname.sh /path/to/directory v sv vh
# Where /path/to/directory is the directory to start searching
# and v, sv, vh are the file extensions to search for.
# Check if at least two arguments are provided (directory and at least one extension)
if [ $# -lt 2 ]; then
echo "Error: Missing arguments."
echo "Usage: $0 /path/to/directory extension1 [extension2 ...]"
exit 1
fi
# 사용자가 지정한 디렉토리
target_directory=$1
# 파일 리스트를 저장할 파일 이름
output_file="filelist.f"
# 결과 파일 초기화
> "$output_file"
# 첫 번째 인자는 디렉토리로 사용하므로 확장자는 두 번째 인자부터 처리
shift
# 인자로 받은 확장자들에 대해 반복 실행
for ext in "$@"
do
# 해당 확장자를 가진 파일을 찾아 임시 파일에 추가
find "$target_directory" -name "*.$ext" >> "temp_$output_file"
done
# 임시 파일을 디렉토리별로 정렬하여 최종 파일에 저장
sort temp_$output_file > "$output_file"
rm temp_$output_file # 임시 파일 삭제
echo "File list has been created and sorted in $output_file with the extensions provided."
이 스크립트 파일은 명령줄 인자를 받아 디렉토리 내에서 지정된 확장자를 가진 파일을 검색하고, 결과를 정렬하여 파일에 저장합니다. 사용 방법은 스크립트 상단의 주석에서 확인할 수 있습니다.
'IT > ASIC | FPGA' 카테고리의 다른 글
AXI 프로토콜 테스트 환경 설계 2 - 테스트벤치 구성 (0) | 2024.04.30 |
---|---|
AXI 프로토콜 테스트 환경 설계 1 - 인터페이스 모델 정의 (0) | 2024.04.30 |
ETM 모델이란? 타이밍 분석에 사용되는 모델 (0) | 2024.04.09 |
메모리 용량 별 어드레스 비트 표 정리 (0) | 2024.04.08 |
[용어 도움말] EMA??? (0) | 2024.04.05 |