이 웹 페이지는 .txt 파일로 다운로드 이름을 ID를 사용 SED. 저장된이 파일의 이름은 웹 페이지의 URL 부분을 사용하여 지정됩니다 (예 : 편의를 위해 wget http://www.example.com/page/12345/ -O 12345.txt
. 그것은 예를 들어 여러 명령, 한 번에 하나의 라인을 실행할 수사용 txt 파일에서 ID를 찾아 파일 wget을 사용
나는, 쉘 스크립트 .sh
파일에서 명령을 실행하고 있습니다. 파일 다운로드가 완료되면
blah blah Product ID a5678
이 포함됩니다.
제가 원했던 것은을 찾기 위해 sed를 사용하고 12345.txt 파일의 이름을 a5678.txt로 바꾸는 것입니다.
# script.sh
wget http://www.example.com/page/12345/ -O 12345.txt
sed -i '' 's/pattern/replace/g' 12345.txt
sed command to find a5678 # in line blah blah Product ID a5678
some more sed commands
mv 12345.txt a5678.txt (or use a variable $var.txt)?
어떻게하면됩니까?
이 동일한 ID a5678
을 사용하고 동일한 이름의 폴더를 a5678
으로 만들 수도 있습니다. 따라서 .txt 파일은 /a5678/a5678.txt
과 같은 폴더 안에 있습니다.
mkdir a5678 (or mkdir $var)? && cd a5678
나는 반나절 동안 답변을 검색했지만 찾을 수 없습니다. 내가 찾은 가장 가까운 것이 Find instance of word in files and change it to the filename이지만 정확히 내가 원하는 것과 반대입니다. 또한 변수 사용에 대해서도 생각해 봤습니다. https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-command하지만 발견 된 문자를 변수로 저장하는 방법을 모르겠습니다.
매우 많은 도움을 기대합니다! 고맙습니다! 나는 시에라를 운영하는 맥에있다.
당신이 파일의 _replacing_ 문자는하지 않는 한, 나는 단지'대신 grep' 사용할 수 있습니다 : 당신의 영감으로, 나는 (그렙를 사용하지 않고)에 의해 내 문제를 해결 . (여러 일치를 방지하기 위해)은'grep'에'-m 1 '플래그를 추가하고, [$ 아웃]은'경우 추가; 또는 ... – jdv