传给函数的路径是/root/file,如果这是函数的第一个参数,那么函数中可以用 $1 获取。
得到文件名file1和file2后,echo "$1/file1" 就输出/root/file/file1,echo "$1/file2" 输出/root/file/file2。
grep命令可以查找单个文件或文件夹下文件中的内容,使用参数“r”或“-R”可以递归查找指定文件夹下的所有文件;参数“l”可以让grep输出包含指定字符串的文件名,首次匹配成功后立刻停止对同文件的查询。如果不使用“l“,grep查询单个文件时输出文件中所有包含指定字符串的行,对文件夹查询时则按照“文件名:包含字符串行”的方式输出。
有了上面提到的知识,执行批量替换的命令可以写为:
grep "netingcn" -rl /assign-path | xargs sed -i 's/netingcn/>
命令下载地址:
网页链接
(不知道能不能看到)
上面有awk、sed、bc、grep等常用命令。
把解压出来的命令放在C:\Windows\System32可以直接运行,不过为了避免和系统命令冲突,最好放在别的文件夹,更改环境变量path,添加命令所在的文件夹路径到path中,如下图:
使用例子,发现Windows中sed的命令语句部分,下图中的“/button/p”,可以加双引号、不加引号,但是不能用单引号,可能和cmd有关:
grep ingcn -rl /assign-path | xargs sed -i 's/ingcn/ingcn/g'
或
sed -i 's/ingcn/ingcn/g' `grep ingcn -rl /assign-path`
还有一种比较复杂的写法:
grep ingcn -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/ingcn/ingcn/g'
其中命令awk用于分割字符串、uniq对结果进行除重。
、网络上现成的资料
格式: sed -i s/查找字段/替换字段/g `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i s/oldstring/newstring/g `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的111cn为111cn
sed -i s/111cn/111cn/g `grep 111cn -rl /home`
exp:sed -i s/shabi/$/g `grep shabi -rl /`
2、自己额外附加
21 将文件1txt内的文字garden替换成mirGarden
# sed -i s/garden/mirGarden/g
1txt sed -i 很简单
22 将当前目录下的所有文件内的garden替换成mirGarden
## sed -i s/garden/mirGarden/g `ls` 其实也就是ls出多个文件名而已
以上就是关于Linux在脚本中获得文件的绝对路径之后怎么获得不带路径的文件名全部的内容,包括:Linux在脚本中获得文件的绝对路径之后怎么获得不带路径的文件名、如何使用 sed 或类似工具批量替换文件中的数值并每次加 1、我在windows下想用sed命令怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)