[26457] 2021-06-21_Linuxshell逐行处理文本求和,我人傻了...

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-19
2021-06-21_Linuxshell逐行处理文本求和,我人傻了... L i n u x   s h e l l . . . L i n u x   2 0 2 1 - 0 6 - 2 1   L i n u x   L i n u x / C / C + + / / t e s t . d a t a 1   1 2   2   2 3   3   3 4   4   5 6   a w k   ' { s + = $ 2 }   E N D   { p r i n t   s } '   t e s t . d a t a   a w k s h e l l # ! / u s r / b i n / e n v   b a s h s u m = 0 c a t   t e s t . d a t a   |   w h i l e   r e a d   l i n e d o         t e m p _ n u m = $ ( e c h o   " $ l i n e "   |   c u t   - d   '   '   - f   2 )         s u m = $ ( (   $ s u m   +   $ t e m p _ n u m   ) ) d o n e e c h o   " w e   g e t   s u m : $ s u m " w e   g e t   s u m : 0 0 | w h i l e s u b s h e l l s u b s e l l 退   . L i n u x C C + +
s h e l l 使 # ! / u s r / b i n / e n v   b a s h s u m = 0 f o r   l i n e   i n   $ ( c a t   t e s t . d a t a ) d o         e c h o   " g e t   l i n e   : $ l i n e "         t e m p _ n u m = $ ( e c h o   " $ l i n e "   |   c u t   - d   '   '   - f   2 )         s u m = $ ( (   $ s u m   +   $ t e m p _ n u m   ) ) d o n e e c h o   " w e   g e t   s u m : $ s u m " $   s h e l l c h e c k   m y s c r i p t L i n e   3 : c a t   t e s t . d a t a   |   w h i l e   r e a d   l i n e         ^ - -   S C 2 0 0 2 :   U s e l e s s   c a t .   C o n s i d e r   ' c m d   <   f i l e   |   . . '   o r   ' c m d   f i l e   |   . . '   i n s t e a d .                                             ^ - -   S C 2 1 6 2 :   r e a d   w i t h o u t   - r   w i l l   m a n g l e   b a c k s l a s h e s . L i n e   6 :         s u m = $ ( (   $ s u m   +   $ t e m p _ n u m   ) )         ^ - -   S C 2 0 3 0 :   M o d i f i c a t i o n   o f   s u m   i s   l o c a l   ( t o   s u b s h e l l   c a u s e d   b y   p i p e l i n e ) .                         ^ - -   S C 2 0 0 4 :   $ / $ { }   i s   u n n e c e s s a r y   o n   a r i t h m e t i c   v a r i a b l e s .                                       ^ - -   S C 2 0 0 4 :   $ / $ { }   i s   u n n e c e s s a r y   o n   a r i t h m e t i c   v a r i a b l e s . L i n e   8 : e c h o   " w e   g e t   s u m : $ s u m "                                   ^ - -   S C 2 0 3 1 :   s u m   w a s   m o d i f i e d   i n   a   s u b s h e l l .   T h a t   c h a n g e   m i g h t   b e   l o s t . $
g e t   l i n e   : 1 g e t   l i n e   : 1 2 g e t   l i n e   : 2 g e t   l i n e   : 2 3 g e t   l i n e   : 3 g e t   l i n e   : 3 4 g e t   l i n e   : 4 g e t   l i n e   : 5 6 w e   g e t   s u m : 1 3 5 t a b , t a b I F S s h e l l I F S = $ ' n ' # ! / u s r / b i n / e n v   b a s h s u m = 0 w h i l e   r e a d   l i n e d o         e c h o   " l i n e   $ l i n e "         t e m p _ n u m = $ ( e c h o   " $ l i n e "   |   c u t   - d   '   '   - f   2 )         s u m = $ ( (   $ s u m   +   $ t e m p _ n u m   ) ) d o n e   <   " t e s t . d a t a " e c h o   " w e   g e t   s u m : $ s u m " # ! / u s r / b i n / e n v   b a s h s u m = 0 w h i l e   r e a d   c o l 1   c o l 2 d o         s u m = $ ( (   $ s u m   +   $ c o l 2   ) ) d o n e   <   " t e s t . d a t a " e c h o   " w e   g e t   s u m : $ s u m " c o l 1 c o l 2 使 使
n   1 2 n   2 3 n   3 4 n   5 6 l i n e     1 2 l i n e     2 3 l i n e     3 4 l i n e     5 6 w e   g e t   s u m : 1 2 5 - r w h i l e   r e a d   - r   l i n e t a b s h e l l c h e c k f o r   i n   f i l e - - -   E O F   - - - L i n e   3 : f o r   l i n e   i n   $ ( c a t   t e s t . d a t a )                         ^ - -   S C 2 0 1 3 :   T o   r e a d   l i n e s   r a t h e r   t h a n   w o r d s ,   p i p e / r e d i r e c t   t o   a   ' w h i l e   r e a d '   l o o p .
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则