이 질문에 대한 답변이 어딘가에 있을 것이라고 확신하지만, 해당 질문을 찾기 위해 Google에 내 질문을 어떻게 표현해야 할지 모르겠습니다. 나의 일반적인 접근 방식은 유사한 스크립트를 찾아서 적용하는 것이지만 이 스크립트를 시작하는 데 어려움을 겪고 있습니다. 그러나 나는 sed가 관련될 것이라는 것을 알고 있습니다.
예를 들어 비디오 파일의 변수(이름 및 번호) 세트가 있습니다.
2020_12_15-14_20_56_Event23.mkv
2020_12_15-14_24_28_Event24.mkv
2020_12_15-15_09_11_Event25.mkv
2020_12_15-15_15_26_Event26.mkv
2020_12_15-15_18_36_Event27.mkv
2020_12_15-15_42_16_Event28.mkv
2020_12_15-15_46_15_Event29.mkv
2020_12_15-15_49_48_Event30.mkv
2020_12_15-16_15_03_Event31.mkv
2020_12_15-16_20_05_Event32.mkv
예를 들어 이를 표시하는 HTML 페이지를 생성하는 스크립트를 실행하고 싶습니다.
<!DOCTYPE html>
<html>
<body>
<h1>Test</h1>
<video width="1280" height="720" controls>
<source src="2020_12_04-13_46_45_Event23.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_04-13_46_45_Event24.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="INSERT NEXT FILE IN LIST HERE" type="video/webm">
Your browser does not support the video tag.
</video>
(...etc)
</body>
</html>
나는 그것을 순수한 HTML(PHP, 자바스크립트 등 없음)로 유지하고 싶기 때문에 bash만 사용하여 이 작업을 수행하고 싶습니다. 가능하다면 모든 파일을 선택하는 스크립트를 실행하십시오. 디렉토리를 생성하고 html보다 더 많은 것을 생성합니다.
미리 감사드립니다.
답변1
매우 간단합니다. 머리글과 바닥글을 변수에 넣고 파일 이름에 따라 변경되는 텍스트 블록에도 동일한 작업을 수행하면 됩니다. 그런 다음 파일 이름을 반복하고 각각 인쇄합니다. 이 같은:
#!/bin/bash
read -r -d '' header <<EoF
<!DOCTYPE html>
<html>
<body>
<h1>Test</h1>
EoF
read -r -d '' footer <<EoF
</body>
</html>
EoF
read -r -d '' printfFormatString <<EoF
<video width="1280" height="720" controls>
<source src="%s" type="video/webm">
Your browser does not support the video tag.
</video>\n\n
EoF
printf "%s\n" "$header"
for file in "$@"; do
printf "$printfFormatString" "$file"
done
printf "%s\n" "$footer"
그런 다음 파일 이름을 인수로 사용하여 스크립트를 실행할 수 있습니다.
$ foo.sh *mkv
<!DOCTYPE html>
<html>
<body>
<h1>Test</h1>
<video width="1280" height="720" controls>
<source src="2020_12_15-14_20_56_Event23.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-14_24_28_Event24.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_09_11_Event25.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_15_26_Event26.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_18_36_Event27.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_42_16_Event28.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_46_15_Event29.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-15_49_48_Event30.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-16_15_03_Event31.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
<video width="1280" height="720" controls>
<source src="2020_12_15-16_20_05_Event32.mkv" type="video/webm">
Your browser does not support the video tag.
</video>
</body>
</html>