首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux实战(一)

grep 作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。....*\1' aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个\1 ,\1也就是es,因为前面把es存储到了内存并默认标记为1了,找到就显示该行...my将被替换为**my**  \<      词首定位符        /\以my开头的单词的行  \>      词尾定位符       /my\>/  匹配包含以my结尾的单词的行...字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。...设置分隔符 默认域分隔符是"空白键" 或 "[tab]键",如果想用其它符合作分隔符,参照下例: /etc/passwd中是用:分割的 如下: #cat /etc/passwd root:x:0:0:

2.2K10

【C++】B2120 单词的长度

前言 在本次讨论中,我们围绕一个典型的编程问题展开:给定一行输入的单词序列,要求计算并输出每个单词的长度,单词之间以逗号隔开。...注意: 如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。 没有被空格间开的符号串,都算作单词。...输入格式: 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。 单词序列总长度不超过1000。 输出格式: 依次输出对应单词的长度,之间以逗号间隔。...边界处理:如果当前字符是字符串的最后一个字符,并且不是空格,那么我们输出最后一个单词的长度。...这种做法的缺点是: 越界访问:在 s[i + 1] 判断中,如果 i 等于字符串最后的索引,可能会导致访问越界。

10210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++】PP5015 标题统计

    输入格式 输入文件只有一行,一个字符串 s 。 输出格式 输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。...不会因为空格而分隔字符串,这是统计字符的基础。 统计逻辑: 遍历字符串中的每个字符。 使用isspace()判断字符是否为空白字符(包括空格、制表符和换行符)。...如果是空白字符,则跳过;否则将计数器cnt加1。 输出结果: 统计完成后,将有效字符的总数输出。 优点 利用了C++标准库中的isspace()函数,过滤空白字符非常方便。...输入方式的选择 getline(): 适合处理整行输入,尤其是包含空格的内容。 cin >> s: 适合按单词分隔的场景,自带空白字符过滤。 3....实际应用场景 文本分析:如统计单词数、字符频率。 数据过滤:如提取特定格式的内容。

    6910

    awk 的进阶使用案例

    IGNORECASE 如果为真,则进行忽略大小写的匹配。 NF 当前记录中的字段数。 NR 当前记录数。 OFMT 数字的输出格式(默认值是%.6g)。 OFS 输出字段分隔符(默认值是一个空格)。...域 记录中每个单词称做“域”,默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。...输出域的分隔符默认是一个空格,保存在OFS中。如awk -F: '{print $1,$5}' test,$1和$5间的逗号就是OFS的值。...格式如下: index(string, substring) 示例 #返回整行中的9999出现位置,如果未出现则返回0 cat /etc/shadow | awk -F: '{print index($0...cat /etc/shadow | awk -F: '{print length}' 字符串截取 substr函数返回从位置1开始的子字符串,如果指定长度超过实际长度,就返回整个字符串。

    1.9K20

    vim 超强编辑器

    ; (:跳转至上一个句子; 段落间移动: }:跳转至下一段 {:跳转至上一段 3. vim的编辑命令: 字符编辑: x:删除光标处的单个字符; #x:删除光标处起始的...#个字符; xp:交换光标所在处的字符及其后面字符的位置; 替换命令: r,replace r:替换光标所在处的字符;(单字符替换) 删除命令: #dd:向下删除#行...: (p,put,paste) p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面; P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的上方...;否则,则粘贴至当前光标所在处的前面; 复制命令: y$:复制至绝对行尾 y0:复制至绝对行首 y^:复制至行首的第一个非空白字符 yy:复制整行 #yy:复制多行;...查找并替换 s/要查找的内容/替换为的内容/修饰符 查找替换中的分隔符/可替换为其它字符,例如: i:忽略大小写 g:全局替换;默认情况下,没一行只替换第一次出现的内容;

    73710

    linux文本处理工具及正则表达式

    --output-delimiter=STRING指定输出分隔符  显示文件前10行,以“:”作为分隔符打印第1和第7个字段并分隔符换成空格输出: [root@bogon ~]# head /etc...配合-c,严格校验排序;不配合-c,则只输出一次排序结果   -t   使用指定的分隔符代替非空格到空格的转换   -k 1 在位置1 开始一个key,在位置2 终止(默认为行尾) [root@bogon.../sbin/halt bin:x:1:1:bin:/bin:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown uniq 命令:从输入中删除重复的前后相接的行...or 关系   -w   整行匹配整个单词   -E   使用扩展正则表达式 正则表达式: .    ...,用于模式的最左侧 $   行尾锚定,用于模式的最右侧 ^PATTERN$  用于模式匹配整行 ^$   空行 ^[[:space:]]*$   空白行 \单词模式的左侧

    57030

    vim的快捷键大全

    X 删除前一个字符 删除3个字符就是3x dd:删除一行 D 删除到行尾 caw:改写单词 c 相当于 d 变为编辑模式 J:删除换行符,使下一行并上来。...co 30 把10行到20行的内容,复制到30行之后 将光标放在 { 处,然后输入v%就可以把大括号中内容选定 如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是跳到下一个...和Fx相同,区别是跳到字符x后 # 到与当前单词相同的上一个单词上, * 到与当前单词相同的下一个单词上 如果你要重复键入一个短语或一个句子, 也有一种快捷的方法。...以空格、标点符号与单词的分界为分隔符。(几个连续的标点视为一个单词) 同样的,也可以使用nB,nW,只是这里只使用空格做为分隔符。 相换两个相邻字母的位置:x、p s:删除一个字符,并进入编辑模式。...S:删除一整行,进入编辑模式,相当于cc。 ns:删除后面n个字符,并进入编辑模式。 ~:更改字母的大小写,同时光标进入到下一个字符。 n~:把后面n个字母的大小写状态改变。

    2.1K40

    vim 编辑器

    5yy: 复制从光标处开始的5行 删除 x :删除关闭所在处的单个字符 #x :删除光标所在处以及之后的共#个字符 dd:删除(剪切)光标所在整行 #dd: 删除(剪切)从光标处开始的#行...以单词为单位移动 w:移动下一个单词的词首 e:跳至当前或下一个单词的词尾 b:跳至当前或前一个单词的词首 行内跳转 0:绝对行首 ^ :行首的第一个非空白字符 $:绝对行尾 行间跳转 #G:跳转至第...(yy)为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为整行,则粘贴到光标所在字符的后面。...P:如果删除(dd)或复制(yy)为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为整行,则粘贴到光标所在字符的前面。...字符串 在文本中从下至上搜索该字符串 /字符串 在文本中从上至下搜索该字符串 :syntax on 设置语法高亮 :行号d 删除第n行 :开始行号s,结束行号e d 删除从s~e行

    89020

    Linux —vim 编辑器

    以单词为单位移动 w:移动到下一个单词的词首 e:跳至当前或下一个单词的词尾 b:跳至当前或上一个单词的词首 #w:以当前光标为起点跳至第...#个单词的词首 #e:以当前光标为起点跳至第#个单词的词尾 #b:以当前光标为起点跳至第#个单词的词首 行内跳转 0:数字0,跳转到绝对行首...命令模式下字符编辑: 编辑命令 意义 x 删除光标所在处的单个字符 #x 删除光标所在处及其向后共#个字符 xp 交换光标所在处的字符及其后面字符的位置 命令模式下删除字符:d 命令模式下d命令与其它命令组合使用...光标所在当前行 $ 最后一行 +# 光标所在行往后#行 $-# 倒数第#行 % 全文 命令模式下复制命令:yy 命令模式下粘贴命令:p p:小写p 若删除或复制的为整行内容,则粘贴至光标所在行的下方...若删除或复制的为非整行,则粘贴至光标所在字符的后面 P:大写p 若删除或复制的为整行内容,则粘贴至光标所在行的上方 若删除或复制的为非整行,则粘贴至光标所在字符的前面 命令模式下替换

    5.2K20

    史上最全VIM使用手册

    :删除光标所在处的字符; #x:删除光标所在处起始的#个字符; xp:交换光标所在处的字符与其后面的字符的位置; 替换命令(replace): r:替换光标所在处的字符; rCHAR ~...:删除光标所在处的行; #dd:删除光标所处的行起始的共#行; 粘贴命令(p, put, paste): 编辑模式粘贴 p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方...; P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方; 复制命令(yank, y): 编辑模式复制 y:复制,工作行为相似于d命令; y$:复制光标所在位置到行尾的字符...[,end_pos] #:特定的第#行,例如5即第5行; ....”中使用后向引用; 直接引用查找模式匹配到的全部文本,要使用&符号; 修饰符: i:忽略大小写; g:全局替换,意味着一行中如果匹配到多次,则均替换;

    3K10

    linux基础命令介绍四:文本编辑 vim

    如果打开的是一个老文件,底部左边显示"file" 3L, 66C字样,表示文件名,当前光标所处行号,文件总字节数。文件中没有字符的地方会以字符~开头。...重复上一个命令 x 删除光标位置的字符 d 从光标处开始剪切 dd 剪切光标所在位置的整行(保存在临时缓冲区) ndd n为数字,表示从当前行开始,从上到下剪切n行 p 将缓冲区中的内容放到当前行之下...处,{可以换成其他字符 F} 光标移动到当前行的上一个字符}处 t, 光标移动到当前行的下一个逗号之前一个字符处 T, 光标移动到当前行的上一个逗号之后一个字符处 % 移动到成对括号的另一半括号处,包括...可以用点号.代表当前行 如删除当前行到第五行的内容: :.,5d 当当前行处于第五行以下时,会有反向删除的提示。...下面介绍一部分将要用到的正则表达式的概念和用法: 匹配位置: ^ 表示行开头 $ 表示行结尾 单词开头 > 表示单词结尾 匹配字符: . 表示匹配任意单个字符(相当于通配符中的?)

    1.3K20

    【基础拾遗】编辑器之神-VIM

    ; b:跳转至当前或下一个单词的词首; #COMMAND:由#指定一次跳转的单词数; 行首行尾跳转: ^:跳转至行首的第一个非空白字符; 0:跳转至绝对的行首; $:跳转至绝对行尾; 行间移动: #G:...: 字符编辑: x:删除光标处的单个字符; #x:删除光标处起始的#个字符; xp:交换光标所在处的字符及其后面字符的位置; 替换命令: r,replace r:替换光标所在处的字符;(单字符替换) 删除命令...,paste) p:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面; P:缓冲区中存储的如果为整行内容,则粘贴至当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面...w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中; r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容; (2)...."引用前面查找时查找到的整个内容; 修饰符: i:忽略大小写 g:全局替换;默认情况下,没一行只替换第一次出现的内容; 查找替换中的分隔符/可替换为其它字符,例如: s@@@ s### 六、vim的文件模式

    1.3K50

    linux下编辑VI窗口插入与编辑命令

    二,复制 a,复制整行 命令模式下,光标位于要复制的当前行,输入 yy b,复制一个单词 命令模式下,光标位于要复制的当前单词的第一个字母,输入 yw 三,黏贴 命令模式下,输入 p 四,删除 a...,删除整行 命令模式下,光标位于要删除的所在行,输入 dd b,删除一个单词 命令模式下,光标位于要删除的单词的第一个字母,输入 dw 五,撤销 命令模式下,输入 u 六,跳转 命令模式下,输入...:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本...│右移一个以空格分隔的词│ ├─────┼───────────┤ │b     │左移一个词      │ ├─────┼───────────┤ │B     │左移一个以空格分隔的词│...     │ ├──┼──────────────────────┤ │P  │如果缺省缓冲区中包含一行文本,则正当前    │ │   │行前面插入一个空行井将缺省缓冲区中的内    │ │

    4.2K20

    Component之vi

    >个单词尾部 E 将光标移动到右侧第个由空格间隔的单词尾部 f 将光标移动到右侧第一个字符,未找到则移动到行尾 t 将光标移动到右侧第一个字符,未找到则移动到行尾 F... 将光标移动到左侧第一个字符,未找到则移动到行首 T 将光标移动到左侧第一个字符,未找到则移动到行首 $ 将光标移动到行尾 0 将光标移动到行首 ^ 将光标移动到行首第一个非空格字符...Mode s 删除光标位置字符并切换到Input Mode cw 从光标位置删除到当前单词尾部并切换到Input Mode cc 删除整行并切换到Input Mode S 删除整行并切换到Input...Mode R 切换到Input Mode并且新输入字符覆盖原有字符 编辑命令 r 使用字符替换后面的个字符 x 删除光标右侧个字符(含光标位置) X 删除光标左侧...个字符 d SPACE 删除光标位置字符 dl 删除光标位置字符 dw 从光标位置删除到当前单词尾部 dd 删除整行 d$ 从光标位置删除到行尾 D 从光标位置删除到行尾 p 将最后一次删除内容复制到光标位置后面

    1K30

    awk从0学习,这一篇就够了

    %s 输出一个字符串 %d 整型输出 %c 输出一个字符 %f 输出实数,以小数形式输出 例: %-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10...个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。...例:设置字段分隔符为逗号 awk 'BEGIN{FS=","} {print $1, $2}' output.txt ②OFS: 输出分隔符。...例:定义一个函数计算平方 awk 'function square(x) {return x * x} {print $1, square($1)}' input.txt ②编写一些简单的自定义函数以解决特定问题...: awk '/pattern/ {count++} END {print "Pattern found:", count, "times"}' file.txt ④过滤 CSV 文件中某一列满足特定条件的行

    23410

    linux下编辑VI窗口插入与编辑命令

    二,复制 a,复制整行 命令模式下,光标位于要复制的当前行,输入 yy b,复制一个单词 命令模式下,光标位于要复制的当前单词的第一个字母,输入 yw 三,黏贴 命令模式下,输入 p 四,删除 a...,删除整行 命令模式下,光标位于要删除的所在行,输入 dd b,删除一个单词 命令模式下,光标位于要删除的单词的第一个字母,输入 dw 五,撤销 命令模式下,输入 u 六,跳转 命令模式下,输入...:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本...│右移一个以空格分隔的词│ ├─────┼───────────┤ │b     │左移一个词      │ ├─────┼───────────┤ │B     │左移一个以空格分隔的词│...     │ ├──┼──────────────────────┤ │P  │如果缺省缓冲区中包含一行文本,则正当前    │ │   │行前面插入一个空行井将缺省缓冲区中的内    │ │

    4.2K60

    【数据处理】sed原理及使用举例(快速理解核心)

    \< #锚定单词的开始,如:/\以love开头的单词的行。 \> #锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。...x\{m,n\} #重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。 2. 常用命令 s 替换文本(匹配) #在整行范围内把test替换为mytest。...$ sed '/test/,/check/s/$/sed test/' example #如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。...y: 一个字符翻译为另外的字符(但是不用于正则表达式) 用法举例 # 从文件读入:r命令 # file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面...t: 没有匹配到时跳转到label,无label则跳转到结尾 b: 调准到特定的label :a: 定义label a 把第偶数出现的1,改为0 cat >test.txt <<EOF 1 2 1 3

    3.2K546

    程序员必备vim编辑器命令,你想要的我都整理好了(建议收藏)

    常用的几个命令: ### 命令行模式下,比较常用的几个命令: i 切换到输入模式,以输入字符 -- 最最常用 x 删除当前光标所在处的字符 X 删除当前光标前一个字符 : 切换到底线命令模式,...以在最底一行输入命令 dd 移动光标到某一个位置,删除一整行数据命令 o 在当前行的下面另起一行,并变为输入模式 shift+g 跳转到文件末尾 gg 跳转到文件首行g 下图所示是vim处于命令行模式的状态示意图...;整行文本放在行下面,若是非整行文本则放在光标后面 ④ P 将指定缓冲区的内容放到当前光标的位置之上;整行文本放在行下面,若是非整行文本则放在光标后面 剪切和粘贴键命令 ⑦ 文本修改键命令 ①...x 删除光标位置指定的字符 ② dd 删除光标所在的行 ③ u 撤销最近的修改,针对所有修改 ④ U 撤销对当前行上做的所有修改 ⑤ r 替换光标位置上的一个字符,但不会进入insert模式;...读取指定文件中的内容,插入到当前行的最后面 ⑩ 删除文本单词命令 ① dw 删除当前光标后面的一个单词 ② dnw 删除光标后面指定的n个单词 -- n表示要删除的单词数 ③ d$ 删除当前光标到行尾的全部单词

    1K40

    vim精简版教程

    5个字符 2.逐个单词移动 w:移动到下一个单词词首 e:跳到当前单词或下一单词的词尾 b:跳到当前单词或前一单词的词首 #w:一次跳n个单词。...n行 四、翻屏 编辑模式(命令模式) f: 向后翻一屏、 CTRL+b:向上翻一屏 Ctrl+d: 向下翻半屏 Ctrl+u:向上翻半屏 五、删除单个字符 x:删除光标所在处的单个字符 #x:删除光标所在处及向后...n个字符 六、删除命令:d d命令跟跳转命令组合使用 dw: 3dw: #de,#db dd:删除当前光标所在行 #dd:删除当前光标所在行及下面共#行 末行模式下 startadd,Endaddd...:表示当前行 $:表示最后一行 +#:向下#行 1,$-3d: 最后一次删除的内容,可以粘贴到别处 七、粘贴命令p p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行...,则粘贴至光标所在字符的后面; P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面; 八、复制命令 y yy:一行 #y: 九、先删除内容,

    2.4K50
    领券