【问题标题】:how do i assign my files as variables in sequential order?如何按顺序将我的文件分配为变量?
【发布时间】:2022-12-18 01:14:43
【问题描述】:

我在一个文件夹下有 10 个子文件夹,每个文件夹下有 10 个 .gz 文件。我需要从主文件输入子文件并获取此 .gz 文件并按代码顺序(从 91 到 99)处理它。我在 log3 文件中按顺序打印它们。我怎样才能在代码中按顺序再次阅读它们?

我能够使用以下代码顺序生成日志 1、2、3 文件。

find . -name '*.gz' -printf '%f\0' |
sort -z |
while IFS='' read -r -d '' fname
do
    printf '%s\n' "${fname:0:4}" >&3
    printf '%s\n' "${fname:16:17}" >&4
    printf '%s\n' "${fname:0:100}" >&5
done \
   3> >(tee -a receiver_ids > log) \
   4> >(tee -a doy > log2) \
   5> >(tee -a data_record > log3)

但我无法使用这些日志文件运行 rnxEditGde.py。我尝试了下面的代码,但找不到 -dataFile。

for j in {091..099}; do

ionex=$(pl $j log)
summary=$(pl $j log2)
dataRecordFile=$(pl $j log3)

gd2e.py -mkTreeS Trees
sed -i "s/jplg.*/$ionex/g" $dir/Trees/ppp_0.tree

rnxEditGde.py -dataFile "$dataRecordFile" -o dataRecordFile.Orig.gz

【问题讨论】:

  • 0 我的目标是能够运行 rnxEditGde.py 代码。我需要从主文件目录一个一个进入子文件,读取rnxEditGde.py代码中的.gz文件。例如我的主文件是文件A。在文件A下面有编号为91到99的文件。在每个文件下面,都有扩展名为.gz的文件,我需要从中提取信息。 .gz扩展名的文件如下, ISTA00TUR_R_20190910000_01D_30S_MO.crx.gz ISTA00TUR_R_20190920000_01D_30S_MO.crx.gz ISTA00TUR_R_20190930000_01D_30S_MO.crx.gz
  • pl 程序是什么?
  • 对不起,我错过了那部分。 dir=pwd function pl { sed -n "$1p" $2 }
  • 那么,$dataRecoedFile 的值是多少?那个文件存在吗?

标签: bash


【解决方案1】:

pl 函数的形式

函数 pl { sed -n "$1p" $2 }

将寻找行号 $1在文件中,然后打印它,不管 $1 的值是否匹配。您可能想使用“//" 定义的分隔符要匹配的模式在打印行之前,以这种方式:

sed -n "/${1}/p" ${2}

此外,没有大括号会使 $1p 的引用不明确,因此您确实应该使用大括号,尤其是当您确实打算使用“$1p”(不带 //)时。

【讨论】:

    猜你喜欢
    • 2019-07-24
    • 2014-11-13
    • 2011-02-15
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2017-10-29
    • 2019-08-22
    相关资源
    最近更新 更多