#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-