로그할 모든 파일을 찾아 BASH 로그에 문자열을 추가합니다.

로그할 모든 파일을 찾아 BASH 로그에 문자열을 추가합니다.

폴더에서 모든 파일을 찾고 목록(로그)을 생성하고 각 추가 행 "mkdir -p /VOLUME1/path 시작 부분에 로그를 생성합니다.

이와 같이:

/volume1/TEST/folder1/1.jpg
/Volume1/TEST/folder2/2.jpg

나는 이것을 시도한다: 1#cd 디렉토리:

cd /volume1/TEST

2#로그 만들기

ls **/* >/volume1/log.txt

3#새 경로 추가(문자열)

sed -e 's/^/mkdir -p /VOLUME1/TEST2/' /volume1/log.txt >/volume1/log2.txt

나는 이것이 필요합니다 :모든 줄에 추가하십시오 :

mkdir -p /Volume1/TEST2/folder1/1.jpg
mkdir -p /Volume1/TEST2/folder2/2.jpg
.
.

하지만 내 결과는 "/Volume1/TEST2/ folder1/1.jpg" (나는 놓치고 "mkdir -p/Volume1/"간격은 더욱이

(리눅스)

답변1

백슬래시를 이스케이프 처리해야 합니다. 적어도 나에게는 효과가 있었습니다.

sed -e 's/^/mkdir -p \/VOLUME1\/TEST2\//' log.txt > log2.txt

결과의 시작 부분:

mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CheckStyle-20160408.xml
mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CodeStyle-CleanUp-20160408.xml
mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CodeStyle-CodeTemplates-20160408

관련 정보