기존 텍스트 파일에 제목과 예고편을 추가하는 쉬운 방법이 있습니까? 같은 디렉터리에 같은 텍스트 파일이 있습니다. 예를 들어 awk
?
처리 방법에 대한 설명과 함께 도움을 주셔서 감사합니다 awk
. 감사해요.
내가 아는 것은 꽤 많은 단계를 포함하기 때문입니다. 다음을 참고하세요.
기존 파일의 예고편에 헤더를 추가하고 싶다고 가정해 보겠습니다.경고.txt
파일은 다음과 같은 디렉터리에 있습니다.$Source_Dir
텍스트 파일에는 열 이름이 포함되어 있으므로 레코드를 계산하기 위한 Record_Count
두 개의 변수가 있습니다.Actual_Record_Count
Record_Count=`wc -l < ${Source_Dir}/${Output_File_Name} | tr -d " "`
Actual_Record_Count=`expr ${Record_Count} - 1`
ALERT
먼저 제목이 붙은 텍스트 파일을 만듭니다.$Target_Dir
echo ${Bus_date} >${Target_Dir}/${Output_File_Name}
Alert.txt
$Source_Dir
그런 다음 에서 생성된 새 파일에 을 추가했습니다 .$Target_Dir
cat ${Source_Dir}/${Output_File_Name} >> ${Target_Dir}/${Output_File_Name}
Alert.txt
마지막으로 예고편을 에 추가합니다 $Target_Dir
.
예고편에는 레코드 수가 포함됩니다.
echo "EOF${Actual_Record_Count}" >>${Target_Dir}/${Output_File_Name}
답변1
$Bus_date
따라서 줄에 헤더로 추가하려는 일부 쉘 변수가 있습니다 . 그 다음에는 content 가 오고 $Source_Dir/$Output_File_Name
, 그 뒤에는 파일의 줄 수에서 1을 뺀 문자열 EOFNN
이 와야 합니다.NN
사용 awk
:
awk -v head="$Bus_date" 'BEGIN { print head } { print } END { print "EOF" NR-1 }' "$Source_Dir/$Output_File_Name" >"$Target_Dir/$Output_File_Name"
스크립트는 다음과 같습니다
BEGIN { print head }
{ print }
END { print "EOF" NR-1 }
명령줄에서 awk
변수를 head
값으로 설정합니다 $Bus_date
. 이 값은 주어진 파일에서 청크 읽기를 시작하기 전에 출력됩니다 BEGIN
.
이 { print }
블록은 주어진 파일이 수정 없이 있는 그대로 전달되도록 보장합니다.
이 END
블록은 내장 변수를 사용하여 NR
지금까지 읽은 레코드(행) 수를 보유합니다. END
청크 단위 로 NR
읽은 파일의 줄 수입니다.