我编写的这个脚本有问题,只是学习而没有错误,但是没有用
基本上,我想读取maps文件夹中的所有bsp文件,然后将所有名称写入一个命名为maplist.txt的文件中,但从名称中删除所有bsp扩展名,我将举一个例子:我只有这2张地图在我的地图文件夹中
de_dust2.bsp
de_cache.bsp
运行脚本后,它将生成一个名为maplist.txt的文件,并将该文件替换为以前的csgo /中已经存在的文件,并带有以下行:
de_dust2
de_cache
我的代码是:
find csgo/maps/ -name "*.bsp" -exec basename {} .bsp \; |
sort | uniq > maplist.txt
这有效:
find csgo/maps/ -name "*.bsp" -printf '%P\n' |
sed 's/\.[^.]*$//' | sort -u > csgo/maplist.txt |
find csgo/maps/ -name "*.bsp" -printf '%P\n' echo "\n\n\n\n+-------------------------------------------------------------------------------+\n| Your maplist.txt has been updated! \n| YOUR OLD MAPLIST HAVE BEEN UPDATED PLEASE CHECK IT OUT!!! |\n+-------------------------------------------------------------------------------+|" |
sed 's/\.[^.]*$//'
但是echo
无效
出现此错误:
find: paths must precede expression: echo
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
答案 0 :(得分:0)
目前尚不清楚您希望第二个find
在第一个find
之上完成的目标是什么,还是应该将第一个find csgo/maps/ -name "*.bsp" -printf '%f\n' |
sed 's/\.[^.]*$//' | sort -u > csgo/maplist.txt
cat <<\____HERE
Really loud annoying message here.
____HERE
的输出管道化为目标。 (由于重定向到文件,管道还是空的。)但是在两行之间进行阅读并猜测一下,我想您正在寻找类似
LOCATION 10/23/2018 10/24/2018 10/25/2018 10/26/2018
0001 350 351 500 600
0002 400 200 400 250
0005 250 200 300 400