相关疑难解决方法(0)

如何使用awk或sed进行递归查找/替换字符串?

如何找到并替换每次出现的事件:

subdomainA.example.com
Run Code Online (Sandbox Code Playgroud)

subdomainB.example.com
Run Code Online (Sandbox Code Playgroud)

/home/www/目录树下的每个文本文件递归?

bash awk replace sed

642
推荐指数
20
解决办法
49万
查看次数

在Bash中将字符串拆分为数组

在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)

我想用简单的代码,命令的速度无关紧要.我该怎么做?

arrays bash split

577
推荐指数
12
解决办法
79万
查看次数

ls命令:如何获得递归的完整路径列表,每个文件一行?

我如何让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 几乎做我需要的,但我不想要路径碎片,我想要完整的路径.

bash command-line ls find

455
推荐指数
19
解决办法
56万
查看次数

在Linux CLI中以递归方式列出文件,其中包含相对于当前目录的路径

这与此问题类似,但我想在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命令将其包含在相对于当前目录的路径中?

unix linux recursion ls

215
推荐指数
6
解决办法
32万
查看次数

在while循环内修改的变量不会被记住

在下面的程序中,如果我$foo在第一个if语句中将变量设置为值1 ,那么它的作用就是在if语句之后记住它的值.但是,当我将同一个变量设置ifwhile语句内部的值2时,它在while循环之后就被遗忘了.它的行为就像我$foowhile循环中使用某种变量的副本而我只修改那个特定的副本.这是一个完整的测试程序:

#!/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)

bash scope sh while-loop

168
推荐指数
3
解决办法
15万
查看次数

如何获取shell脚本中目录中的文件列表?

我正在尝试使用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.

bash shell directory-listing

134
推荐指数
7
解决办法
44万
查看次数

find -exec cmd {} + vs | xargs的

哪一个对于一大堆文件更有效并应该使用?

find . -exec cmd {} +
Run Code Online (Sandbox Code Playgroud)

要么

find . | xargs cmd
Run Code Online (Sandbox Code Playgroud)

(假设文件名中没有有趣的字符)

unix linux command-line find

111
推荐指数
2
解决办法
7万
查看次数

递归子文件夹搜索并返回列表python中的文件

我正在编写一个脚本来递归遍历主文件夹中的子文件夹并构建一个特定文件类型的列表.我遇到了脚本问题.目前设定如下

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循环并加入路径的第一部分,但我想我会仔细检查以确定是否有人在此之前有任何建议.谢谢你的帮助!

python recursion list os.walk

95
推荐指数
8
解决办法
12万
查看次数

在linux中使用正则表达式重命名文件

我有一组名为的文件:

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)

regex terminal rename

45
推荐指数
8
解决办法
6万
查看次数

递归列出所有目录和文件

我想收到以下输出.

假设文件系统上的目录结构如下:

  -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到另一个文件?

shell recursion directory-listing

43
推荐指数
4
解决办法
8万
查看次数