如何从bash中的变量获取唯一字符串

汤姆

您好,我想问一下如何从变量中获取唯一的字符串。

while read -r line      
    do
        route=$(echo $line | awk -F'[:]' '{print $2}') #get path from log file
        if [ "`dirname "$route"`" == "`xrealpath "$PWD"`" ]; then #compare path from log file with $PWD
            name=$(echo $line | awk -F'[:]' '{print $1}') #take name from 1st column in log file
        fi
        if ! [ "$name" == "$help_name" ]; then
            echo $name
            help_name=$name
            pom=$pom:$name
        fi
    done < $WEDI_RC

样本日志文件:

proj.sh:/Users/Tom/Documents/proj.sh:2015-03-21:1
proj1.sh:/Users/Tom/Documents/proj.sh:2015-03-21:1
proj.sh:/Users/Tom/Documents/proj.sh:2015-03-21:2
proj1.sh:/Users/Tom/Documents/proj.sh:2015-03-21:2
proj.sh:/Users/Tom/Documents/proj.sh:2015-03-21:3
proj1.sh:/Users/Tom/Documents/proj.sh:2015-03-21:3

我如何只回声每个唯一的一次?

我的输出现在看起来像这样:

proj.sh
proj1.sh
proj.sh
proj1.sh
proj.sh
:proj.sh:proj1.sh:proj.sh:proj1.sh:proj.

预期输出:

proj.sh
proj1.sh

我不知道一个周期可以读取多少文件。我们无法使用任何临时文件,谢谢

约翰1024

该问题原始版本的答案

这使用关联数组seen来跟踪已看到的名称:

declare -A seen
while read -r line    
... blabla ...
do
    if [ -z "${seen[$name]}" ]; then
        echo $name
        seen["$name"]=1
        pom=$pom:$name
    fi
done < "$WEDI_RC"

工作示例(否blabla

让我们从这个文件开始:

$ cat file
proj.sh
proj1.sh
proj.sh
proj1.sh
proj.sh

我们将运行以下代码(请注意,该代码...blabla...已被删除,并且循环现在name直接读入):

$ cat script.sh
declare -A seen
while read -r name
do
    if [ -z "${seen[$name]}" ]; then
        echo $name
        seen["$name"]=1
        pom=$pom:$name
    fi
done < file
declare -p pom

结果如下:

$ bash script.sh
proj.sh
proj1.sh
declare -- pom=":proj.sh:proj1.sh"

修订问题的答案

在修改后的问题中,将显示以下代码:

    route=$(echo $line | awk -F'[:]' '{print $2}') #get path from log file
    if [ "`dirname "$route"`" == "`xrealpath "$PWD"`" ]; then #compare path from log file with $PWD
        name=$(echo $line | awk -F'[:]' '{print $1}') #take name from 1st column in log file

这意味着,在运行代码时,name可能永远不会在运行脚本时根据当前目录进行设置。这将解释注释中报告的错误消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从相似字符串的向量中获取唯一字符串

来自分类Dev

如何找到字符串中唯一字符的数量?

来自分类Dev

如何找到字符串中唯一字符的数量?

来自分类Dev

如何通过在Rails中递增来保存唯一字符串?

来自分类Dev

如何提取R中全文本字符串模式之间的唯一字符串?

来自分类Dev

匹配bash中具有一定数量的唯一字符的字符串

来自分类Dev

加密随机唯一字符串

来自分类Dev

加密随机唯一字符串

来自分类Dev

获取给定AnyObject的唯一字符串?

来自分类Dev

获取给定AnyObject的唯一字符串?

来自分类Dev

从重复的条目中获取唯一字符串的列表

来自分类Dev

如何在Matlab中计算字符或唯一字符串

来自分类Dev

字符串中唯一字符的计数

来自分类Dev

计算用户给定的字符串中的唯一字符

来自分类Dev

Java,计算字符串中唯一字符之间的差异

来自分类Dev

计算字符串中唯一字符的数量

来自分类Dev

R:计算该字符串中唯一字符的数量

来自分类Dev

查找2个字符串中的唯一字符

来自分类Dev

两个字符串中的唯一字符对

来自分类Dev

字符串中唯一字符的计数

来自分类Dev

Java,计算字符串中唯一字符之间的差异

来自分类Dev

如何提取唯一字符串的第一个实例

来自分类Dev

计算python中多维数组中唯一字符串的数量

来自分类Dev

如何使用单独函数的输出更新shell脚本中的唯一字符串?

来自分类Dev

如何向文本文件添加新的唯一字符串

来自分类Dev

MongoDB:如何将文档ID连接到唯一字符串

来自分类Dev

如何从Swing组件检索唯一字符串?

来自分类Dev

Hive SQL:如何按前缀计算唯一字符串

来自分类Dev

如何从 Dataframe 列中提取唯一字符串?

Related 相关文章

热门标签

归档