如何找到并替换每次出现的事件:
subdomainA.example.com
Run Code Online (Sandbox Code Playgroud)
同
subdomainB.example.com
Run Code Online (Sandbox Code Playgroud)
在/home/www/目录树下的每个文本文件递归?
在Bash脚本中,我想将一行分成几部分并将它们存储在一个数组中.
这条线:
Paris, France, Europe
Run Code Online (Sandbox Code Playgroud)
我想将它们放在这样的数组中:
array[0] = Paris
array[1] = France
array[2] = Europe
Run Code Online (Sandbox Code Playgroud)
我想用简单的代码,命令的速度无关紧要.我该怎么做?
我如何让ls吐出一个递归的每行路径的平面列表?
例如,我只想要一个包含完整路径的文件列表:
/home/dreftymac/.
/home/dreftymac/foo.txt
/home/dreftymac/bar.txt
/home/dreftymac/stackoverflow
/home/dreftymac/stackoverflow/alpha.txt
/home/dreftymac/stackoverflow/bravo.txt
/home/dreftymac/stackoverflow/charlie.txt
Run Code Online (Sandbox Code Playgroud)
ls -a1 几乎做我需要的,但我不想要路径碎片,我想要完整的路径.
这与此问题类似,但我想在unix中包含相对于当前目录的路径.如果我执行以下操作:
ls -LR | grep .txt
Run Code Online (Sandbox Code Playgroud)
它不包括完整路径.例如,我有以下目录结构:
test1/file.txt
test2/file1.txt
test2/file2.txt
Run Code Online (Sandbox Code Playgroud)
上面的代码将返回:
file.txt
file1.txt
file2.txt
Run Code Online (Sandbox Code Playgroud)
如何使用标准Unix命令将其包含在相对于当前目录的路径中?
在下面的程序中,如果我$foo在第一个if语句中将变量设置为值1 ,那么它的作用就是在if语句之后记住它的值.但是,当我将同一个变量设置if为while语句内部的值2时,它在while循环之后就被遗忘了.它的行为就像我$foo在while循环中使用某种变量的副本而我只修改那个特定的副本.这是一个完整的测试程序:
#!/bin/bash
set -e
set -u
foo=0
bar="hello"
if [[ "$bar" == "hello" ]]
then
foo=1
echo "Setting \$foo to 1: $foo"
fi
echo "Variable \$foo after if statement: $foo"
lines="first line\nsecond line\nthird line"
echo -e $lines | while read line
do
if [[ "$line" == "second line" ]]
then
foo=2
echo "Variable \$foo updated to $foo inside if inside while loop"
fi
echo "Value …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用shell脚本获取目录的内容.
我的脚本是:
for entry in `ls $search_dir`; do
echo $entry
done
Run Code Online (Sandbox Code Playgroud)
哪里$search_dir是相对路径.但是,它$search_dir包含许多名称中带有空格的文件.在这种情况下,此脚本不会按预期运行.
我知道我可以使用for entry in *,但这只适用于我当前的目录.
我知道我可以更改到该目录,for entry in *然后使用然后更改回来,但我的特殊情况阻止我这样做.
我有两个相对路径$search_dir和$work_dir,和我有两个同时工作,阅读他们创建/删除在他们的文件等.
那我现在该怎么办?
PS:我用bash.
哪一个对于一大堆文件更有效并应该使用?
find . -exec cmd {} +
Run Code Online (Sandbox Code Playgroud)
要么
find . | xargs cmd
Run Code Online (Sandbox Code Playgroud)
(假设文件名中没有有趣的字符)
我正在编写一个脚本来递归遍历主文件夹中的子文件夹并构建一个特定文件类型的列表.我遇到了脚本问题.目前设定如下
for root, subFolder, files in os.walk(PATH):
for item in files:
if item.endswith(".txt") :
fileNamePath = str(os.path.join(root,subFolder,item))
Run Code Online (Sandbox Code Playgroud)
问题是subFolder变量正在拉入子文件夹列表而不是ITEM文件所在的文件夹.我想在之前为子文件夹运行for循环并加入路径的第一部分,但我想我会仔细检查以确定是否有人在此之前有任何建议.谢谢你的帮助!
我有一组名为的文件:
Friends - 6x03 - Tow Ross' Denial.srt
Friends - 6x20 - Tow Mac and C.H.E.E.S.E..srt
Friends - 6x05 - Tow Joey's Porshe.srt
Run Code Online (Sandbox Code Playgroud)
我想像下面那样重命名它们
S06E03.srt
S06E20.srt
S06E05.srt
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能在linux终端上完成工作?我已经安装了重命名但是U使用以下方法获得错误:
rename -n 's/(\w+) - (\d{1})x(\d{2})*$/S0$2E$3\.srt/' *.srt
Run Code Online (Sandbox Code Playgroud) 我想收到以下输出.
假设文件系统上的目录结构如下:
-dir1
-dir2
-file1
-file2
-dir3
-file3
-file4
-dir4
-file5
-dir5
-dir6
-dir7
脚本的输出必须如下:
目录:
/dir1 /dir1/dir2 /dir1/dir2/dir3 /dir1/dir2/dir4 /dir1/dir5 /dir1/dir5/dir6 /dir1/dir5/dir7
文件:
/dir1 /dir1/dir2/file1 /dir1/dir2/file2 /dir1/dir2/dir3/file3 /dir1/dir2/dir3/file4 /dir1/dir2/dir4/file5 /dir1/dir5/dir6 /dir1/dir5/dir7
你能告诉我如何保持的输出find . -type d,并find . -type f到另一个文件?