txt 파일의 첫 번째 줄을 + 3개 열로 변경합니다.

txt 파일의 첫 번째 줄을 + 3개 열로 변경합니다.

여기에 이미지 설명을 입력하세요.아래와 같은 txt 파일이 있습니다.

#A9999999999999              012021I                                   
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-  
0099999999    000000000099999999+000000000000000000-000000000000000000-

첫 번째 행에 3개의 열을 더 만들고 싶습니다.

9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-

이 예에는 첫 번째 행의 값을 포함하는 3개의 열이 포함되며, 첫 번째 열에는 첫 번째 열(08-15), 두 번째 열(30-35), 세 번째 열 위치 36 및 첫 번째 열이 포함됩니다. 데이터 행.

파일의 첫 번째 부분을 삽입하는 동안 탭은 일부 브라우저의 구조를 일부 변경합니다. 그래서 파일 레이아웃 사진을 포함시켰습니다.

저는 현재 데비안을 사용하고 있습니다. 처음 몇 번의 시도 에서는 catsed. 제가 문법에 익숙하지 않아서 몇 가지 예를 들어보겠습니다.

답변1

모든 Unix 시스템의 모든 쉘에서 awk를 사용하십시오.

$ cat tst.awk
BEGIN { OFS="," }
NR==1 {
    pfx = substr($0,8,7) OFS substr($0,30,6) OFS substr($0,36,1)
    next
}
{
    gsub(/[+-]/,"& ")
    $1 = pfx OFS $1
    print
}

$ awk -f tst.awk file
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-
9999999,012021,I,0099999999,000000000099999999+,000000000000000000-,000000000000000000-

관련 정보