• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/ksh-23/ksh/src/lib/libcmd/

Lines Matching defs:cut

26  * cut fields or columns from fields from a file
30 "[-?\n@(#)$Id: cut (AT&T Research) 2010-08-11 $\n]"
32 "[+NAME?cut - cut out selected columns or fields of each line of a file]"
138 Cut_t* cut;
140 if (!(cut = (Cut_t*)stakalloc(sizeof(Cut_t) + strlen(cp) * sizeof(int))))
142 if (cut->mb = mbwide())
144 memset(cut->space, 0, sizeof(cut->space) / 2);
145 memset(cut->space + sizeof(cut->space) / 2, SP_WIDE, sizeof(cut->space) / 2);
148 memset(cut->space, 0, sizeof(cut->space));
149 cut->wdelim = *wdelim;
151 cut->space[wdelim->chr] = SP_WORD;
152 cut->ldelim = *ldelim;
153 cut->eob = (ldelim->len == 1) ? ldelim->chr : 0;
154 cut->space[cut->eob] = SP_LINE;
155 cut->cflag = (mode&C_CHARS) && cut->mb;
156 cut->nosplit = (mode&(C_BYTES|C_NOSPLIT)) == (C_BYTES|C_NOSPLIT) && cut->mb;
157 cut->sflag = (mode&C_SUPRESS) != 0;
158 cut->nlflag = (mode&C_NONEWLINE) != 0;
159 cut->reclen = reclen;
160 lp = cut->list;
188 n = 1 + (lp-cut->list)/2;
189 qsort(lp=cut->list,n,2*sizeof(*lp),mycomp);
218 lp = cut->list;
226 return cut;
248 * cut each line of file <fdin> and put results to <fdout> using list <list>
252 cutcols(Cut_t* cut, Sfio_t* fdin, Sfio_t* fdout)
257 register const int* lp = cut->list;
265 if (len = cut->reclen)
273 if (!(ncol = skip = *(lp = cut->list)))
278 if (cut->nosplit)
309 else if (cut->cflag)
348 if (!cut->nlflag && (skip || must || cut->reclen))
350 if (cut->ldelim.len > 1)
351 sfwrite(fdout, cut->ldelim.str, cut->ldelim.len);
353 sfputc(fdout, cut->ldelim.chr);
359 * cut each line of file <fdin> and put results to <fdout> using list <list>
364 cutfields(Cut_t* cut, Sfio_t* fdin, Sfio_t* fdout)
366 register unsigned char *sp = cut->space;
370 register const int *lp = cut->list;
385 if((lastchar = cp[c]) != cut->eob)
386 *ep = cut->eob;
395 if (nfields = *(lp = cut->list))
406 if (cut->mb)
424 if (lastchar != cut->eob)
442 if ((lastchar = cp[c]) != cut->eob)
443 *ep = cut->eob;
457 if (w == cut->ldelim.chr)
458 lastchar = cut->ldelim.chr;
459 else if (w != cut->wdelim.chr)
477 if (c == cut->wdelim.chr)
482 if (c == cut->ldelim.chr)
504 if (lastchar == cut->ldelim.chr)
506 /* restore cut->last character */
507 if (lastchar != cut->eob)
534 if (!cut->sflag)
550 if (copy && (c=cp-copy)>0 && (!nodelim || !cut->sflag) && sfwrite(fdout,(char*)copy,c)< 0)
554 if(inword && nodelim && !cut->sflag && (c=cp-first)>0)
575 Cut_t* cut;
678 cut = cutinit(mode, cp, &wdelim, &ldelim, reclen);
691 cutfields(cut,fp,sfstdout);
693 cutcols(cut,fp,sfstdout);