![txt 파일의 첫 번째 줄을 + 3개 열로 변경합니다.](https://linux55.com/image/199546/txt%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EC%A4%84%EC%9D%84%20%2B%203%EA%B0%9C%20%EC%97%B4%EB%A1%9C%20%EB%B3%80%EA%B2%BD%ED%95%A9%EB%8B%88%EB%8B%A4..png)
#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 및 첫 번째 열이 포함됩니다. 데이터 행.
파일의 첫 번째 부분을 삽입하는 동안 탭은 일부 브라우저의 구조를 일부 변경합니다. 그래서 파일 레이아웃 사진을 포함시켰습니다.
저는 현재 데비안을 사용하고 있습니다. 처음 몇 번의 시도 에서는 cat
및 sed
. 제가 문법에 익숙하지 않아서 몇 가지 예를 들어보겠습니다.
답변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-