각 행에서 문자열의 일부를 제거각 줄의 형식의 단일 문자열 내가 텍스트 파일을
/home/usr1/284.txt
전체 파일은 내가하는 것입니다 원하는 것은
/home/usr1/284.txt
/home/usr1/361.txt
같다
/home/usr1/
을 제거하고 파일 이름을 유지하십시오 (예 :
284.txt
)
linux/unix 명령을 사용하여 어떻게 수행 할 수 있습니까?
각 행에서 문자열의 일부를 제거각 줄의 형식의 단일 문자열 내가 텍스트 파일을
/home/usr1/284.txt
전체 파일은 내가하는 것입니다 원하는 것은
/home/usr1/284.txt
/home/usr1/361.txt
같다
/home/usr1/
을 제거하고 파일 이름을 유지하십시오 (예 :
284.txt
)
linux/unix 명령을 사용하여 어떻게 수행 할 수 있습니까?
또한과 같이, 펄을 사용할 수
perl -pe 's,.*/,,' file.txt
는 시도이 : 당신은 결국 다른 부분을해야 할 경우
while read line; do basename "$line"; done < filename
basename
의 역수 dirname
입니다.
sed -e 's!/home/usr1/!!' filename.txt
또는
awk -F\/ {print $NF} filename.txt
트릭을 할해야합니다.
sed
예에서 패턴 구분 기호로 보통
/
대신
!
을 사용하십시오. 즉, 패턴에 리터럴
/
자를 이스케이프 할 필요가 없음을 의미합니다.
가
파일의 필드가 고정되어 있기 때문에, 당신은 간단하게 수행 할 수 있습니다
cut -b 12-
입력의 첫 11 바이트를 건너 뛰려면 .
bash가 있습니까?
read -d '' -a lines < input.txt
echo "${lines[@]##*/}"
감사합니다. 's,. */,,'의 정규식이 어떻게 작동하는지 자세히 설명해 주시겠습니까? –
@ bit-question, 그것은 마지막'/'을 포함하여 모든 것을 제거합니다. 's'는 치환을 의미하고,','는 내가 선택한 구분자이며, 다른 문자를 사용할 수 있습니다.'. * /'는 정규 표현식이며, 빈 문자열을 대체 문자로 사용합니다. 거의 모든 문자를 구분 기호로 사용할 수 있으며's!. */!! '와 같이 쓸 수 있습니다. – Qtax