Чтобы решить конкретный случай, который вы упомянули о пути, вам не нужно использовать сложный «порядок переключения», вам потребуется управление недавней историей пути, такое как fzf для нечеткой истории поиска. Zsh archwiki должен упомянуть о каталогах,Вы должны проверить это.
Я обнаружил, что очень часто я захожу на путь, а затем мне нужно выполнить какие-то действия над чем-то внутри этого пути, который в настоящее время находится вне пути. Управление историей пути повысит эффективность, как в случае с fzf.
Ряд команд может быть помещен в файл BASH
для выполнения того, что вы здесь предлагаете. Поскольку ваш выбор критериев кажется очень индивидуальным и не следует очевидной логике, вам, вероятно, придется явно хранить каждую переменную. Вот пример, предполагающий, что File1 буквально содержит текстовый файл с одной строкой, которая выглядит примерно так:
123456789, 1, 10, 12345
, что соответствует msisdn, channel, transid, time1 и т. д., разделенным запятыми. Пример того, как вы можете получить нужные значения в скрипте BASH
с помощью awk
(grep
, здесь не особенно полезен ), как показано ниже:
#!/usr/bin/bash
# Define the filenames
File1='filename_of_file1.txt'
File2='filename_of_file2.txt'
File3='filename_of_file3.txt'
OutputFile='filename_of_output_file.txt'
# Grab the Nth column in each respective file
msisdn=$(awk -F, '{print $1}' $File1
channel=$(awk -F, '{print $2}' $File1
transid1=$(awk -F, '{print $3}' $File1
time1=$(awk -F, '{print $4}' $File1
transid2=$(awk -F, '{print $1}' $File2
...
...
# Calculate the difference between certain variables
duration1=$(echo ${time2}-${time1} | bc)
duration2=$(echo ${time4}-${time3} | bc)
...
...
# Return the formatted string to an output file
echo "${msisdn}|${channel}|${transid}..." > $OutputFile
Очевидно, что это неполные (все разделы, помеченные...
). Тем не менее, он должен, по крайней мере, показать шаблон того, как можно подойти к этой проблеме очень явным и конкретным образом.