Linux 使用ls将文件存储到列表中,同时使用sed删除部分dirname
我有一个文件夹,比如说,位于此处:Linux 使用ls将文件存储到列表中,同时使用sed删除部分dirname,linux,Linux,我有一个文件夹,比如说,位于此处: /Users/spotter/Downloads 根文件夹中有两个文件: test1.txt和test2.txt 我想编写一个shell脚本,将所有文件保存到一个列表中,其中包含一行内容,如下所示: file\u list=“$(ls/Users/spotter/Downloads)” 而echo$file\u列表将返回: /Users/spotter/Downloads/test1.txt /Users/spotter/Downloads/test2.txt
/Users/spotter/Downloads
根文件夹中有两个文件:
test1.txt
和test2.txt
我想编写一个shell脚本,将所有文件保存到一个列表中,其中包含一行内容,如下所示:
file\u list=“$(ls/Users/spotter/Downloads)”
而echo$file\u列表将返回:
/Users/spotter/Downloads/test1.txt
/Users/spotter/Downloads/test2.txt
但是,我想更改dirname的一部分。我特别想删除/Users/spotter
部分
我这样试过:
file_list=“$(ls/Users/spotter/Downloads|
读取路径时,执行dirname“$path”| sed's/users/spotter//';done)”
返回:
sed:1:“s/users/spotter/Downloa…”:替换命令中的错误标志:“D”
sed:1:“s/users/spotter/Downloa…”:替换命令中的错误标志:“D”
当我执行echo$file\u list
时,我希望这是输出:
下载/test1.txt
Downloads/test2.txt
问题是sed认为“/”是RE和替换之间的分隔符,因此sed没有按照您希望的方式读取另一个“/”。您可以使用其他字符作为分隔符。例如的~/Users/spotter/~'