| 
 | 
请教lmod的用法
lmod挺好用的,中文也能处理,虽然在屏幕显示时是乱码。 
 
lmod用法很简单,直接运行就会显示简单的使用说明。 
下面是我的一些理解,希望能对你有所帮助。欢迎指正 
LMOD 1.3 Filter (c) 2002 Horst Schaeffer 
Syntax: LMOD options string_with_tokens 
Options: 
        /Ln[-m] line [range] to select (default: first non blank line) 
        /L[n]*  all lines [starting n] 
        /E      include empty input lines (default: no output) 
        /S..    delimiters for word extraction, instead of default (,;=) 
        /B..    as /S, but excluding blank space as delimiter 
        /Nn     starting line number (for token [#]), default: /N001 
Insert from source line (expression in square brackets): 
 [p,l $n U|L Rn]  default []: complete line 
        p,l     from position p, length l (default rest of line) 
        $n      word number n ("!" for last word); optionally ±offset 
        $n:m    range of words by number (blank space will be inserted) 
        U|L     convert to upper|lower case 
        Rn      right aligned in output field of size n 
Other tokens: 
        [+]     insert CR+LF 
        [-]     omit CR+LF at end of output 
        [#]     line number (digits acc. to option, default:3) 
        [=n]    tab to position n in output line 
        [~n]    ASCII code n (decimal) 
        [".."]  quoted char/string (use for redirection symbols) 
-------------------------------------------- 
选项说明: 
/Ln[-m] line [range] to select (default: first non blank line) 
要显示的行的范围,如省略则默认显示第一个非空行 
如 /L2指显示第2行,/L5-9指显示第5-9行,/L-8表示显示第1-8行 
/L[n]*  all lines [starting n] 
指显示所有的行,如/L*显示所有行,/L4*显示从第4行开始的所有行 
/E      include empty input lines (default: no output) 
显示空白行。如省略则默认不会显示空白行。 
/S..    delimiters for word extraction, instead of default (,;=) 
指定单词的分隔符。默认有空格,逗号,分号,等号。如/S-表示指定连字符为分隔符,如good- 
looking就会被认为是两个单词 
/B..    as /S, but excluding blank space as delimiter 
同上。但从默认分隔符中去掉了空格。如a test,for test只是两个单词而不是四个单词 
/Nn     starting line number (for token [#]), default: /N001 
指定自动编行号的开始值。 
 
Insert from source line (expression in square brackets): 
要显示的内容都写在方括号里。 
 [p,l $n U|L Rn]  default []: complete line 
指定显示一行中的哪些字符。默认用[]表示显示整行 
p,l     from position p, length l (default rest of line) 
指定显示的起始位置及长度。如[2,6]表示显示每行的第2-6个字符。[6]表示显示从第6个字符起的 
所有字符 
$n      word number n ("!" for last word); optionally ±offset 
指定显示第几个单词。感叹号表示最后一个单词。可以用加减号作偏移运算 
如[$2]指显示第2个单词,[$!]指最后一个单词,[$!-2]指倒数第3个单词 
$n:m    range of words by number (blank space will be inserted) 
指定显示哪几个单词(中间的空格也会显示) 
如[$4:6]指显示第4-6个单词。 
U|L     convert to upper|lower case 
将所选单词转换大小写 
如 U 则为大写,如 L 则转换为小写 
Rn      right aligned in output field of size n 
指定所选单词按一定长度靠右对齐 
 
Other tokens: 
其他一些特殊字符 
        [+]     insert CR+LF 
每显示一行后面加上回车换行,即插入一个空白行 
        [-]     omit CR+LF at end of output 
删除行末回车换行。即合并多行 
        [#]     line number (digits acc. to option, default:3) 
行自动编号,默认3位,可以用选项/n调整 
如/N5 [#]表示从005开始编号,/N0001 [#]表示从0001开始四位数编号 
        [=n]    tab to position n in output line 
行首插入一定数量的空格 
        [~n]    ASCII code n (decimal) 
插入用ASCII码表示的字符,如[~3]表示一个心形 
        [".."]  quoted char/string (use for redirection symbols) 
将特殊字符转义为普通字符。如"/L*"只是普通三个字符,而不再表示所有行了。 
 
将上面这些组合起来灵活使用,可以得到很多结果。 
lmod一般用在管道|后面。结果的结果显示在屏幕上。如果要生成新文件只需再用>转向即可。 
例子: 
现有有一个文本文件 test.txt,要求是 
给所有行加行号及空格 
type test.txt | lmod /L* [#] [] 
取第8-9行的第二个单词小写,第四个单词大写且8位右对齐,在这两个单词之间加四位数行号 
type test.txt | lmod /L8-9/N0001 [$2 L][#][$4 U R8] 
写到新文件test2.txt中 
type test.txt | lmod /L8-9/N0001 [$2 L][#][$4 U R8] > test2.txt |   
 
 
 
 |