파일의 줄을 파일 이름에 넣습니다.

파일의 줄을 파일 이름에 넣습니다.

실행 가능한 스크립트 가 있고 hdsentinel입력할 때

./hdsentinel 

터미널에서 하드 드라이브 상태에 대한 정보를 얻을 수 있습니다.

내가 입력할 때:

./hdsentinel >hd.log

파일에 있는 모든 정보를 얻었습니다 hd.log.

사이트에 /home/user/Desktop예제 파일이 있습니다. hd.log 위의 파일명에 파일 예시의 세 번째 줄(세 번째 줄은 192.168.1.1)을 입력하고 싶은데 결과는 hd192.168.1.1.log. 어떻게 해야 하나요?

답변1

이것을 시도해 보세요. 여기서는 sed를 사용하여 파일 예제의 n번째(세 번째) 줄을 인쇄하고 $(sed '3q;d' <example-file-path>)출력 파일 이름에 표현식 결과를 사용합니다.

./hdsentinel > "hd$(sed '3q;d' /home/user/Desktop/example).log"

설명하다:

sed 'NUMq;d' file

여기서 NUM은 인쇄할 줄 번호입니다. 예를 들어 sed '3q;d' file은 파일의 세 번째 줄을 인쇄합니다.

NUMq줄 번호가 이면 즉시 종료됩니다 NUM.

d인쇄하는 대신 줄을 삭제합니다.

따라서 q를 사용하면 종료 시 스크립트의 나머지 부분을 건너뛰게 되므로 NUM 줄을 제외한 모든 줄이 삭제됩니다.

관련 정보