나는 일련의 URL을 가지고 있으며 첫 번째 URL 이전의 항목에만 관심이 있습니다 /
.
이 정보를 텍스트 파일로 캡처하려면 어떻게 해야 합니까?
입력 ( foo.txt
):
apple.com/nothing.js
t1.msn.com/cookie=22
happy.net/whatever
출력(파일로 리디렉션됨: ) foo_filter.txt
:
apple.com/
t1.msn.com/
happy.net/
답변1
$ awk 'sub("/.*","/")' foo.txt
apple.com/
t1.msn.com/
happy.net/
답변2
사용 Miller
:
mlr --nidx --ifs '/' -N cut -f 1 file
또는 GNU를 사용하십시오 datamash
:
datamash dirname 1 <file
답변3
후행 슬래시가 필요하지 않으면 매우 간단합니다.
cut -d/ -f1 foo.txt
awk -F/ '{print $1}' foo.txt
sed 's!/.*!!' foo.txt
정말로 후행 슬래시를 원한다면,
awk -F/ '{print $1 "/"}' foo.txt
sed 's!/.*!/!' foo.txt
이 모든 것이 기록될 것이다표준 출력(화면) 결과를 즉시 확인할 수 있습니다. 대상 파일로 리디렉션하려면 >foo_filter.txt
명령 끝에 사용하십시오. 예를 들어,
awk -F/ '{print $1 "/"}' foo.txt >foo_filter.txt
답변4
을 텐데grep:
$ grep -oE '^[^/]+/' foo.txt
산출:
apple.com/
t1.msn.com/
happy.net/
모든 요구 사항을 충족하려면:
grep -oE '^[^/]+/' foo.txt | tee foo_filter.txt