0

是否有任何脚本可以删除该行中的单词,例如:

“我的名字/你的名字/我们的名字/名字”
“我的名字/名字”

我想删除双引号内和最后一个斜杠之前的单词。无论出现什么词,我都需要删除它。删除后,它们都应该是:

“姓名”

更具体地说:我有一个文件夹,该文件夹中有多个文件。每个文件都包含一个头文件,例如#include "my_name/ur_name/name". 我希望它是#include "name",因为我想在当前目录中创建该标题。

4

3 回答 3

1

你可以试试下面的命令,

命令:

sed -i 's|#include "my_name/ur_name/name"|#include "name"|g' *

描述:

命令将用 ( #include "my_name/ur_name/name")替换 ( #include "name") 到目录的所有文件中

注意:
命令立即返回“OK”消息,但执行内部文件操作需要时间。

于 2014-03-27T07:19:46.530 回答
0

一个简单的一行就可以做到这一点

文件.txt

"my_name/your_name/ours_name/name"
"my_name/x_name"

命令

sed 's/^"//g' file.txt | awk 'BEGIN {FS="/"} {print $NF}' | sed 's/^/"/g'

输出

"name"
"x_name"
于 2014-03-20T10:28:57.427 回答
0

外壳文件

创建一个名为main.sh并复制此文件:

#Get parameter.
string=$1
#Explode string to array.
IFS='/' read -a array <<< "$string"
#Get array size.
size=${#array[@]}
#Get last array element.
echo ${array[$size-1]}

BASH 用法

现在您可以main.sh使用双引号之间的路径作为参数进行调用,它将返回最后一段。

$bash -f main.sh "my_name/your_name/ours_name/name"
名称
$bash -f main.sh "my_name/name"
名称

也许你也应该看看这个问题:Take the last part of the folder path in shell

于 2013-08-13T08:15:37.750 回答