相关疑难解决方法(0)

bash在单独的行上打印数组元素

如何在单独的行上打印Bash数组的数组元素?这个有效,但肯定有更好的方法:

$ my_array=(one two three)
$ for i in ${my_array[@]}; do echo $i; done
one
two
three
Run Code Online (Sandbox Code Playgroud)

试过这个,但它不起作用:

$ IFS=$'\n' echo ${my_array[*]}
one two three
Run Code Online (Sandbox Code Playgroud)

arrays bash

203
推荐指数
4
解决办法
29万
查看次数

找到两个字符串之间的公共子串

我想比较2个字符串并保持匹配,在比较失败的地方分开.

所以,如果我有2个字符串 -

string1 = apples
string2 = appleses

answer = apples
Run Code Online (Sandbox Code Playgroud)

另一个例子,因为字符串可能有多个单词.

string1 = apple pie available
string2 = apple pies

answer = apple pie
Run Code Online (Sandbox Code Playgroud)

我确信有一种简单的Python方法可以做到这一点,但我无法解决,任何帮助和解释都表示赞赏.

python string algorithm dynamic-programming time-complexity

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

在一组字符串中查找最长的公共起始子字符串

对于一个相对微不足道的问题,提出最优雅的JavaScript,Ruby或其他解决方案是一项挑战.

此问题是最长公共子字符串问题的更具体情况.我只需要在数组中找到最长的公共起始子字符串.这大大简化了问题.

例如,最长的子串[interspecies, interstelar, interstate]是"inters".但是,我不需要找到"ific" [specifics, terrific].

我已经通过快速编写JavaScript解决方案来解决这个问题,作为我关于类似shell的选项卡完成的答案的一部分(这里是测试页面).这是解决方案,略有调整:

function common_substring(data) {
  var i, ch, memo, idx = 0
  do {
    memo = null
    for (i=0; i < data.length; i++) {
      ch = data[i].charAt(idx)
      if (!ch) break
      if (!memo) memo = ch
      else if (ch != memo) break
    }
  } while (i == data.length && idx < data.length && ++idx)

  return (data[0] || '').slice(0, idx)
}
Run Code Online (Sandbox Code Playgroud)

代码在此Gist中提供,以及Ruby中的类似解决方案.您可以将gist克隆为git repo来试用它: …

javascript ruby python haskell longest-prefix

39
推荐指数
6
解决办法
3万
查看次数

如何在awk中检测EOF?

有没有办法确定当前行是否是输入流的最后一行?

awk eof

10
推荐指数
4
解决办法
3万
查看次数

bash shell脚本找到几个文件最近的父目录

假设输入参数是几个文件的FULL路径.说,

/abc/def/file1
/abc/def/ghi/file2
/abc/def/ghi/file3
Run Code Online (Sandbox Code Playgroud)
  1. 如何/abc/def在bash shell脚本中获取目录名?
  2. 我怎样才能获得唯一的file1,/ghi/file2/ghi/file3

bash

8
推荐指数
1
解决办法
3217
查看次数

如何在bash中找到两个字符串之间的常用字符?

例如:

s1="my_foo"
s2="not_my_bar"
Run Code Online (Sandbox Code Playgroud)

期望的结果将是my_o.我怎么在bash中这样做?

string bash shell

5
推荐指数
1
解决办法
2946
查看次数

bash两个字符串的最长公共部分

我有以下字符串:“ abcdefx”,“ zzdefghij”我想提取两个字符串的共同部分,即这里的“ def”。我尝试使用sed,但是除非通用部分是这样的前缀,否则我将无法做到这一点:

fprint "%s\n%\n" | sed -e 'N;s:\(.*\).*\n\1.*:\1:'
Run Code Online (Sandbox Code Playgroud)

bash

4
推荐指数
1
解决办法
604
查看次数

可移植的 sed 方法来查找字符串的最长公共前缀

bash 中两个字符串的最长公共前缀sed中的解决方案仅适用于 GNU 。我想要一个更便携的解决方案(例如对于 BSD/macOS 、 Busybox )。sedsedsedsed

sed

2
推荐指数
1
解决办法
382
查看次数