다음과 같은 정보가 포함된 데이터 파일이 있습니다.
977.txt:[email protected]
977.txt:[email protected]
980.txt:[email protected]
982.txt:[email protected]
985.txt:[email protected]
987.txt:[email protected]
987.txt:[email protected]
991.txt:[email protected]
991.txt:[email protected]
991.txt:[email protected]
994.txt:[email protected]
995.txt:[email protected]
999.txt:[email protected]
이전에 모든 것을 삭제하고 싶습니다: 디렉토리의 모든 파일에 대해 이를 수행하는 방법(Linux).
나는 이것을 시도했고 작동하지만 여러 파일에 사용할 수 없습니다.
grep -o - '[[:alnum:]+\._\-]*@[[:alnum:]+\._\-]*' file.txt
답변1
또 다른 sed
솔루션.
$ sed -n 's/[^:]*\://p' infile
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
$
-i
디렉터리 트리에서 파일을 내부 편집 및 재귀적으로 편집하기 위해 해당 옵션을 사용하도록 쉽게 확장할 수 있습니다.find
답변2
단일 디렉토리에 있는 모든 파일의 앞 부분을 제거하려면 다음을 수행하십시오.
sed -i -r 's/^[0-9]+\.txt://' *
먼저 파일의 복사본 몇 개를 테스트해 보세요.
답변3
관련된 파일 수나 디렉터리 깊이에 따라 일부 오류가 발생할 수 있지만 파일 수가 적은 경우에는 정상적으로 작동합니다.
printf '%s\n' 'g/^.*:\(.*\)/s//\1/' w q | ed -s *