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

Bash:在文件中查找单词并在其后面添加文本

Bash是一种Unix shell和命令语言,常用于Linux和macOS系统中。它提供了一个命令行界面,允许用户与操作系统进行交互,并执行各种任务,包括文件操作、进程管理、系统配置等。

在文件中查找单词并在其后面添加文本,可以使用Bash的文本处理工具和命令来实现。以下是一个示例的Bash脚本,用于在文件中查找指定单词,并在其后面添加指定的文本:

代码语言:txt
复制
#!/bin/bash

# 定义要查找的单词和要添加的文本
search_word="keyword"
add_text="additional text"

# 遍历文件夹中的所有文件
for file in /path/to/directory/*; do
    # 判断文件是否为普通文件
    if [ -f "$file" ]; then
        # 使用grep命令查找单词并在其后面添加文本,并将结果保存到临时文件
        grep "$search_word" "$file" | sed "s/$search_word/& $add_text/g" > "$file.tmp"
        # 将临时文件替换原文件
        mv "$file.tmp" "$file"
    fi
done

上述脚本中,需要替换的部分是/path/to/directory/keywordadditional text,分别表示要查找的文件夹路径、要查找的单词和要添加的文本。你可以根据实际情况进行修改。

推荐的腾讯云相关产品是云服务器(CVM),它提供了可靠的云计算基础设施,适用于各种应用场景。你可以通过以下链接了解更多关于腾讯云服务器的信息:腾讯云服务器产品介绍

请注意,以上答案仅供参考,具体实现方式可能因环境和需求而异。在实际应用中,建议根据具体情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式的元字符表示回自身的字面意义,不再特殊。...#两者效果相同,并且标记颜色 $ grep "bash" file_read.sh demo.sh #file_read.sh demo.sh 内查找bash 目录下查找内容 成功会输出文件名...w 表示把行写入一个文件。 x 表示互换模板块文本和缓冲区文本。...需用到替换标记:& 已匹配字符串标记,代替之前已匹配内容 需用到正则表达式:\w\+:匹配每一个单词 $ ls | sed 's/^/666_&/g' #表示给当前文件下的文件名统一添加前缀 $...ls | sed 's/$/666_&/g' #表示给当前文件下的文件名统一添加后缀 $ ls | sed 's/\w\+/666_&/g' #表明给所有的单词添加前缀 $ ls | sed

9.1K20

python 遍历toast msg文本背景简易语法介绍1. 查找目录下所有java文件查找Java文件的Toast在对应行找出对应的id使用idString查找对应的toast提示信息。

几乎是边查文档编写,记录写编写过程: 查找目录下所有java文件 查找Java文件中含有Toast相关的行 在对应行找出对应的id 使用idString查找对应的toast提示信息。...for语句是这个样子滴: for node in root: if node.attrib.has_key("name") > 0 : 导库:import os 执行开始的地方还是main函数,后面会有...查找目录下所有java文件 这个我是直接copy网上递归遍历的,省略。...查找Java文件的Toast 需要找出Toast的特征,项目中有两个Toast类 BannerTips和ToastUtils 两个类。 1.先代码过滤对应的行。...在对应行找出对应的id 使用idString查找对应的toast提示信息。 最后去重。 最后一个比较简单,可以自己写,也可以解析下xml写。

3.9K40

查找预编译头时遇到意外的文件结尾。是否忘记了向源添加“#include StdAfx.h”?

查找预编译头时遇到意外的文件结尾。是否忘记了向源添加“#include "StdAfx.h"”?...右键选择该文件.cpp格式的->属性->预编译头,→ 不使用预编译头 错误描述:fatal error C1010: 查找预编译头时遇到意外的文件结尾。...是否忘记了向源添加“#include "stdafx.h"”? 错误分析: 此错误发生的原因是编译器寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。...(因为工程的每个cpp文件属性默认都是使用预编译头(/YU)的,但是添加的第三方文件并没有 #include "stdafx.h" 预编译指示头,所以编译器在此cpp文件中一直到末尾都没有找到它)...解决方式: 一. 1) 解决方案资源管理器,右击相应的.cpp文件,点击“属性” 2) 左侧配置属性,点开“C/C++”,单击“预编译头” 3) 更改右侧第一行的“创建/使用预编译头”,把选项从

8K30

linux中最为常用的三大文本(grep,sed,awk)处理工具

grep常用例子 -例1 文件查找模式(单词/etc/passwd文件查找单词“linuxtechi” grep linuxtechi /etc/passwd -例2 多个文件查找模式...上面的命令将会递归的/etc目录查找“linuxtechi”单词 -例9 使用 grep 查找文件中所有的空行 root@Linux-world:~# grep ^$ /etc/shadow root...@Linux-world:~# 由于/etc/shadow文件没有空行,所以没有任何输出 -例10 使用 -i 参数查找模式 grep命令的-i参数查找时忽略字符的大小写。...我们来看一个例子,paswd文件查找“LinuxTechi”单词。...:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash root@Linux-world:~# -例12 使用 -f 用文件指定待查找的模式 首先,在当前目录创建一个搜索模式文件

6K10

文本三剑客

“ls ‐l”命令 ‐delete:删除查找到的文件 ‐fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件 ‐ok COMMAND {}\:对查找到的每个文件执行由.../etc/init.d/ -perm -111 -exec cp -r {} dir1/ \; {}:用于引用查找到的文件名称自身 注意:find传递查找到的文件后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命...a\:指定行号后添加文本 i\:指定行号前添加文本 d:删除定位行 c\:用新文本替换定位文本 w filename:写文本到一个文件 r filename:从另一个文件文本 s///:替换 替换标记...实例 testfile文件的第四行后添加一行,并将结果输出到标准输出 [root@localhost ~]# sed -e 4a\newline test line one line two line...awk语言的最基本功能是文件或者字符串基于指定规则浏览和抽取信息,awk抽取信息后,才能进 行其他文本操作。完整的awk脚本通常用来格式化文本文件的信息。

2.3K10

shell脚本快速入门之-----正则三剑客之二sed用法大全!!!

一、sed 工具简介 1、sed工具工作原理 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等)...-i:直接编辑文本文件 ?...总结 nl相当于cat nl配合d删除行 其实加不加nl都一样 // sed 固定用法 不要忘记加/ 删除/cross/ cross是模糊查找文本中有cross字段的都删除 7、替换符合条件的文本...O 8、 迁移符合条件的文本 使用 sed 命令迁移符合条件的文本时,常用到以下参数....n '/bash$/wfile' passwd w模式下,可以直接写入文件,这是追加的过程,不会覆盖原文 三、sed-n和-p以及不加参数 不加参数默认输出全部 包括匹配到的参数 -

1.5K30

Linux Shell工具篇 - 文本切割工具cut

-c 提取字符范围 cut切割提取字节:cut 文件或数据 -nb 提取字节范围 演示 准备数据文件:cut1.txt touch cut1.txt 编辑文件添加内容 AA hello 11 XX...1 #输出 AA BB CC DD 提取文件第一列,第三列,枚举查找: cut cut1.txt -d " " -f 1,3 #输出 AA 11 BB 22 CC 33 DD 44 提取文件第二列...、第三列、第四列,范围查找: cut cut1.txt -d " " -f 2-4 #输出 hello 11 world 22 Shell 33 it 44 注意:由于cut1.txt文本文件第一列和第二列之间是...提取文件第一列后面所有列的数据(从第二列开始一直到最后,包括第二列): cut cut1.txt -d " " -f 2- #输出 hello 11 XX world 22 XXX Shell...文本文件中切割出指定单词: cat cut1.txt | grep itheima | cut -d " " -f 2 5.切割提取bash进程的PID号 ps -aux | grep 'bash

2.3K30

Sed三剑客入门与进阶

Sed执行流程: 将要处理的文本文件通过指定文本文件路径或者管道输入; 循环读取文本的行到模式空间,进行判断是否要被处理的行; 执行sed命令进行进一步的处理缓冲区的内容; 打印模式空间 / 清空模式空间...H 追加模板块的内容到内存的缓冲区。 g 获得内存缓冲区的内容,并替代当前模板块文本。 G 获得内存缓冲区的内容,并追加到当前模板块文本后面。...w 表示把行写入一个文件。 x 表示互换模板块文本和缓冲区文本。...从文件读入:r命令 描述:file里的内容被读进来,显示与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面 #示例1.读取file文件的到并且插入到查找到test字符串的后面...ba' -e 's/\n//g' file.txt 指定字符前后进行添加插入相应字符 # -1.1111之前添加AAA, 方法 sed -i 's/指定的字符/要插入的字符&/'文件 sed -i

3.1K10

Linux命令行的艺术

明白 > 会覆盖了输出文件而 >> 是文件添加。了解标准输出 stdout 和标准错误 stderr。 学会使用通配符 * (或许再算上 ? 和 […]) 和引用以及引用 ' 和 " 的区别。... Bash ,可以使用 ctrl-w 删除你键入的最后一个单词,使用 ctrl-u 删除整行,使用 alt-b 和 alt-f 以单词为单位移动光标,使用 ctrl-a 将光标移至行首,使用 ctrl-e...-type f -ls 假设你有一个类似于 web 服务器日志文件文本文件,并且一个确定的值只会出现在某些行上,假设一个 acct_id参数URI。...) printenv:打印环境变量(调试时或在使用脚本文件时很有用) look:查找以特定字符串开头的单词 cut、paste 和 join:数据修改 fmt:格式化文本段落 pr:将文本格式化成页/列形式...fold:包裹文本的几行 column:将文本格式化成多列或表格 expand 和 unexpand:制表符与空格之间转换 nl:添加行号 seq:打印数字 bc:计算器 factor:分解因数 gpg

6.9K72

Linux 之 Vim 编辑器从基础到大成使用

filename #用当前文本覆盖filename文件的内容 :wq #保存退出或者 安装shift+两次Z(推荐) #ZZ :退出vi,仅当文件最后一次保存后进行了修改,才保存缓冲区内容 #ZQ...: #示例1.局部内容另存为,VIM 字面意思可以将文件的局部文本另存为一个新的文件, 1....; #:set ignorecase 查找到以后,再输入n 查找下一个匹配处, 输入N 反方向查找(不区分大小写) gd #查找与光标所在单词相匹配的单词, 并将 `光标停留的单词`文档的非注释段第一次出现这个单词的地方...同样, 再输入n 查找下一个匹配处, 输入N 反方向查找. * #已查找文件结尾,再从开头继续查找 # #已查找文件开头,再从结尾继续查找 g*(g#) #此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词...,可以执行一下文件的操作命令,首先添加配置: #vim安装及配置NERDTree插件,放在Plugin 'gmarik/Vundle.vim' 之后 :PluginInstall #打开Vim底行命令执行就可以安装在配置文件的插件了

1.9K10

vi编辑器参数

普通模式下可以执行命令、保存文件、移动光标、粘贴复制等。 编辑模式 编辑模式主要用于文本的编辑。该模式下用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。...退出之前,你也可以 w 命令后面指定一个文件名,将文件另存为新文件,例如:w filename2。将当前文件另存为 filename2。...可以命令前边添加一个数字作为前缀,例如,2j 将光标向下移动两行。 用来移动光标的命令 命令 说明 0 或 | 将光标定位在一行的开头。 $ 将光标定位在一行的末尾。 w 定位到下一个单词。...粘贴复制 vi 的复制粘贴命令: 命令 描述 yy 复制当前行 nyy 复制n行 yw 复制一个字(单词) nyw 复制n行 p 将复制的文本粘贴到光标后面 P 将复制的文本粘贴到光标前面 高级命令...:r file 读取文件并在当前行的后边插入 :nr file 读取文件并在第 n 行后边插入 文本查找 如果希望进行全文件搜索,可以普通模式(按两次 Esc 键)下输入 / 命令,这时状态栏(最后一行

89140

统计文件中出现的单词次数

利用管道组成的一条命令) 写一个shell脚本,查找kevin.txt文本n个出现频率最高的单词,输出结果需要显示单词出现的次数,并按照次数从大到小排序。...分为以下几步: 1)将文本文件以一行一个单词的形式显示出来; 2)将单词的大写字母转化成小写字母,即Word和word认为一个单词; 3)对单词进行排序; 4)对排序好的单词列表统计每个单词出现的次数.../bin/bash #查找文本n个出现频率最高的单词 count=$1 #$1是输出频率最高单词的个数 cat $2 |...uniq -c | #删除文本文件重复出现的行,-c每列旁边显示该行重复出现的次数 sort -k1nr -k2...,字母以a开头的单词以z开头的单词后面

3.7K111

vim编辑器

打开和新建文件 终端输入 vi 在后面跟上文件名 即可 $ vi 文件名 如果文件已经存在,会直接打开该文件 如果文件不存在,会新建一个文件 2.1 打开文件并且定位行 日常工作,有可能会遇到...N: 查找上一个 如果不想看到高亮显示,可以随便查找一个文件不存在的内容即可 单词快速匹配 命令 功能 * 向后查找当前光标所在单词 # 向前查找当前光标所在单词 开发,通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过...4.10 查找并替换 vi 查找和替换命令需要在 末行模式 下执行 记忆命令格式: :%s///g 1) 全局替换 一次性替换文件的 所有出现的旧文本 命令格式如下: :%s/旧文本/新文本/...较常用 a append 在当前字符后添加文本 A append 在行末添加文本 较常用 o 在当前行后面插入一空行 常用 O 在当前行前面插入一空行 常用 ?...要实现这个效果可以 命令模式 下 移动到要添加注释的 第 1 行代码,按 ^ 来到行首 按 CTRL + v 进入 可视块 模式 使用 j 向下连续选中要添加的代码行 输入 I 进入 编辑模式,并在

1.9K40

测试开发进阶(四十一)

-i忽略大小写 -c只输出匹配行的数量 -n显示行号 -r递归搜索 -E支持拓展正则表达式 -w匹配整个单词 -l只列出匹配的文件名 -F不支持正则,按字符串字面意思进行匹配 最基础用法 $ grep...查找路径下的内容 $ grep -r "bash" ./ ? 只输出文件名 $ grep -rl "bash" ./ ? 正则匹配 $ grep "s{2}" passwd -E ?...的行 /pattern1/,/pattern2/只处理从匹配到pattern1的行到匹配pattern2的行 command命令 查询 p 新增 a匹配行的后面新增 i匹配行前新增 r外部文件读入,...行后新增 w匹配行写入外部文件 删除 d 修改 s/old/new,只修改匹配行第一个old s/old/new/g修改匹配行中所有的old s/old/new/ig忽略大小写 ---- p相当于print...3,4,5行前面添加内容 $ sed '3,5 i Add content before the current line' passwd ?

48110

Vim编辑器基础入门

filename #用当前文本覆盖filename文件的内容 :wq #保存退出或者 安装shift+两次Z(推荐) #ZZ :退出vi,仅当文件最后一次保存后进行了修改,才保存缓冲区内容 #ZQ...; #:set ignorecase 查找到以后,再输入n 查找下一个匹配处, 输入N 反方向查找(不区分大小写) gd #查找与光标所在单词相匹配的单词, 并将 `光标停留的单词`文档的非注释段第一次出现这个单词的地方...同样, 再输入n 查找下一个匹配处, 输入N 反方向查找. * #已查找文件结尾,再从开头继续查找 # #已查找文件开头,再从结尾继续查找 g*(g#) #此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词...xxx #从光标位置开始(自下而上的查找操作 ),向前搜索xxx ,按N进行上一个 :nohl #取消查找 注意事项: 搜索命令”.、*、[、]、^、%、/、?...,可以执行一下文件的操作命令,首先添加配置: #vim安装及配置NERDTree插件,放在Plugin 'gmarik/Vundle.vim' 之后 :PluginInstall #打开Vim底行命令执行就可以安装在配置文件的插件了

1.6K20

Linux 命令行的艺术

学会使用 apropos 去查找文档。知道有些命令并不对应可执行文件,而是 Bash 内置好的,此时可以使用 help 和 help -d 命令获取帮助信息。... Bash ,可以按下 ctrl-w 删除你键入的最后一个单词,ctrl-u 可以删除行内光标所在位置之前的内容,alt-b 和 alt-f 可以以单词为单位移动光标,ctrl-a 可以将光标移至行首...同样对于二进制文件,strings(包括 grep 等工具)可以帮助二进制文件查找特定比特。 制作二进制差分文件(Delta 压缩),使用 xdelta3。 使用 iconv 更改文本编码。...) printenv:打印环境变量(调试时或在写脚本文件时很有用) look:查找以特定字符串开头的单词或行 cut,paste 和 join:数据修改 fmt:格式化文本段落 pr:将文本格式化成页/...列形式 fold:包裹文本的几行 column:将文本格式化成多个对齐、定宽的列或表格 expand 和 unexpand:制表符与空格之间转换 nl:添加行号 seq:打印数字 bc:计算器 factor

4.5K10

一篇文章学习 linux 命令

学会使用 apropos 去查找文档。知道有些命令并不对应可执行文件,而是 Bash 内置好的,此时可以使用 help 和 help -d 命令获取帮助信息。... Bash ,可以按下 ctrl-w 删除你键入的最后一个单词,ctrl-u 可以删除行内光标所在位置之前的内容,alt-b 和 alt-f 可以以单词为单位移动光标,ctrl-a 可以将光标移至行首...同样对于二进制文件,strings(包括 grep 等工具)可以帮助二进制文件查找特定比特。 制作二进制差分文件(Delta 压缩),使用 xdelta3。 使用 iconv 更改文本编码。...) printenv:打印环境变量(调试时或在写脚本文件时很有用) look:查找以特定字符串开头的单词或行 cut,paste 和 join:数据修改 fmt:格式化文本段落 pr:将文本格式化成页/...列形式 fold:包裹文本的几行 column:将文本格式化成多个对齐、定宽的列或表格 expand 和 unexpand:制表符与空格之间转换 nl:添加行号 seq:打印数字 bc:计算器 factor

2.2K22

08-高级键盘技巧

Alt-Backspace 剪切从光标到词头的文本。如果光标一个单词的开头,则剪切前一个单词。 Ctrl-Y 把 kill-ring 缓冲区文本粘贴到光标位置。...除了以上这些,还有很多组合键可以 bash man页面的 READLINE 部分获取更多的相关内容列表。 三、使用历史命令 第 1 章已经提到,bash 会保存使用过的命令 的历史记录。...这些命令的历史记录列表保存在用户主目录的 .bash_history 文件。 这些历史记录非常有用,可以大大减少用户敲打键盘的次数,特别是和命令行编辑结合使用的时候。...99 bash 将把 !99 扩展为历史列表第 99 行的内容。...前面我们曾提到过,如何通过感叹号后面跟数字的方式,将来自历史记录列表的命令插入到命令行。除了这种方式,还有很多其它的扩展特性。具体如下: (1)历史记录扩展命令 序列 行为 !!

98040
领券