Mac 터미널을 사용하여 파일 이름이 포함된 텍스트 파일에 줄 삽입

Mac 터미널을 사용하여 파일 이름이 포함된 텍스트 파일에 줄 삽입

저는 Mac에서 터미널을 사용하고 있으며 각각 다음과 같은 데이터가 포함된 일련의 텍스트 파일이 있습니다.

300.50 253.50
301.00 156.26
301.50 191.57

첫 번째는 '파장'으로 레이블이 지정되고 두 번째는 파일 이름으로 레이블이 지정되는 열에 헤더를 삽입하여 다음과 같이 보이도록 하고 싶습니다(공백으로 구분되는 한 간격은 중요하지 않습니다).

Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57

각 파일에 'Wavelength'를 삽입하는 루프가 있는데 훌륭하게 작동하지만 파일 이름을 추가하면 문제가 발생합니다. 코드는 다음과 같습니다.

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength" . wq)   
done

변경된 부분을 굵게 표시하여 다음 줄을 시도했습니다.

  • -ed -s $file < <(printf '%s\n' 1i "파장"&& $파일. wq)
  • -ed -s $file < <(printf '%s\n' 1i "파장"&& printf $file. wq)
  • -ed -s $file < <(printf '%s\n' 1i "파장"&& $file 에코. wq)

어떻게 해야 하나요? 파일 이름을 변수로 저장하고 변수를 인쇄해야 합니까? 아니면 수정자를 사용하여 파일 이름을 문자열로 변환할 수 있나요?

혹시 생각나는 것이 있으면 알려주시기 바랍니다. 미리 감사드립니다

답변1

다음은 어떻습니까?

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength $file" . wq)
done

그런데 ".wq"와 "1i"는 무슨 역할을 하나요? 나는 그것을 전에 본 적이 없습니다 ...

관련 정보