
file1
파일 경로가 포함된 여러 줄의 텍스트 파일( )을 가정합니다 .
$ cat file1
./foo/foo
./foo/bar
./foo/baz
file2
파일 이름만 저장 하고 각 파일 이름 앞에 특수 문자(예: )를 추가 하고 싶습니다 [#
.
간단한 for-loop를 통해 이 작업을 수행할 수 있다는 것을 알고 있지만 이것이 바람직하지 않은 관행으로 간주된다는 것을 이해합니다.
for line in $(cat file1); do
echo "[#" $(basename "$line") >> file2;
done
나는 이 작업이 를 통해 더 깔끔하게 수행될 수 있다고 생각 awk
하지만 아래 코드는 단지 일부일 뿐입니다. 로 위 작업을 어떻게 수행합니까 awk
?
awk '{print "[#",$0=$(basename $0)}' $file1 > $file2
답변1
/
필드 구분자로 사용 하고 마지막 필드를 인쇄합니다.
$ awk -F/ '{print "[#"$NF}' file1
[#foo
[#bar
[#baz
답변2
sed -e 's|.*/|[#|' file1
결과
[#foo
[#bar
[#baz