Как добавить подсчет слов файла в файл, не добавляя общее количество

Можно также использовать команду, command. Как так:

$ alias echo="command echo 'hi: '"
$ echo "blah"
hi:  blah

Но я могу обойти псевдоним echo как так:

$ command echo "blah"
blah

Заметьте, что я на самом деле использовал command в моем alias определение также. Это избегает псевдонима от цикличного выполнения назад на себе.

2
20.01.2015, 21:29
2 ответа

Не думаю, что вы сможете подавить общее количество в форме мультиархива.

Самый простой способ, который я могу придумать, это придерживаться формы с одним артефактом, когда это необходимо:

if [ "$#" -lt 5 ]
then
    for f in "$@"; do wc -l -- "$f"; done >>"$1"
else
    wc -l "$@" >> "$1"
fi
2
27.01.2020, 22:05

откладывать на последнюю строчку из WC , если для вас слишком мало строк, чтобы вы хотели получить Grand Total.

word_counts=$(wc -l -- "$@")
newline='
'
if [ "$#" -le 9 ]; then
  word_count=${word_count%"$newline"*}
fi
printf '%s\n' "$word_count" >>"$1"

Обратите внимание на двойные цитаты в «$ @» и вокруг других переменных подменных, без этого скрипта нарушится на имена файлов, содержащих пробел (и некоторые другие специальные символы), с абсолютно отсутствующим погашением. Примечание также - в в WC -L - «$ @» , в случае, если имя файла начинается с - - - , WC будет интерпретировать то имя файла в качестве опции).

1
27.01.2020, 22:05

Теги

Похожие вопросы