gpt4 book ai didi

linux - 如何用shell函数制作 "dictionary"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:27 26 4
gpt4 key购买 nike

这是我的代码:

#!/bin/sh
echo "ARGUMENTS COUNT : " $#
echo "ARGUMENTS LIST : " $*

dictionary=`awk '{ print $1 }'`

function()
{
for i in dictionary
do
for j in $*
do
if [ $j = $i ]
then
;
else
append
fi
done
done
}

append()
{
ls $j > dictionary1.txt
}

function

我需要使用 unix shell 函数制作“字典”。例如:我在参数中写了默认词,例如 hello。然后我的函数检查文件 dictionary1 是否该单词存在于文件中。如果不存在 - 将该词追加到文件中,如果它已经存在 - 什么都不做。

出于某种原因,我的脚本不起作用。当我启动我的脚本时,它会等待一些东西,仅此而已。

我做错了什么?我该如何解决?

最佳答案

尝试同时关注性能和正确性的实现可能如下所示:

#!/usr/bin/env bash
# ^^^^- NOT sh; sh does not support [[ ]] or <(...)

addWords() {
local tempFile dictFile
tempFile=$(mktemp dictFile.XXXXXX) || return
dictFile=$1; shift

[[ -e "$dictFile" ]] || touch "$dictFile" || return

sort -um "$dictFile" <(printf '%s\n' "$@" | sort -u) >"$tempFile"
mv -- "$tempFile" "$dictFile"
}

addWords myDict beta charlie delta alpha
addWords myDict charlie zulu
cat myDict

...有一个最终的字典状态:

alpha
beta
charlie
delta
zulu

...对于每个 addWords 调用,它仅一次 重新读取输入文件(无论添加了多少个单词!),而不是每个单词添加一次.

关于linux - 如何用shell函数制作 "dictionary"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55185824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com