minimal-build.sh 代码解析

2021SC@SDUSC

minimal-build.sh的代码如下:

#!/bin/bash
# encoding: utf-8

script_dir="$(dirname "$0")"
output_dir="$1"

for package in essay luna-pinyin prelude; do
  bash "${script_dir}"/install-packages.sh "${package}" "${output_dir}"
done

pushd "${output_dir}" > /dev/null

awk '($2 >= 500) {print}' essay.txt > essay.txt.min
mv essay.txt.min essay.txt

sed -n '{
  s/^version: \(["]*\)\([0-9.]*\)\(["]*\)$/version: \1\2.minimal\3/
  /^#以下爲詞組$/q;p
}' luna_pinyin.dict.yaml > luna_pinyin.dict.yaml.min
mv luna_pinyin.dict.yaml.min luna_pinyin.dict.yaml

for schema in *.schema.yaml; do
  sed '{
    s/version: \(["]*\)\([0-9.]*\)\(["]*\)$/version: \1\2.minimal\3/
    s/\(- stroke\)$/#\1/
    s/\(- reverse_lookup_translator\)$/#\1/
  }' ${schema} > ${schema}.min
  mv ${schema}.min ${schema}
done

ls *.schema.yaml | sed 's/^\(.*\)\.schema\.yaml/  - schema: \1/' > schema_list.yaml
grep -Ff schema_list.yaml default.yaml > schema_list.yaml.min
mv schema_list.yaml.min schema_list.yaml
sed '{
  s/^config_version: \(["]*\)\([0-9.]*\)\(["]*\)$/config_version: \1\2.minimal\3/
  /- schema:/d
  /^schema_list:$/r schema_list.yaml
}' default.yaml > default.yaml.min
rm schema_list.yaml
mv default.yaml.min default.yaml

popd > /dev/null

编码为utf-8位编码。开头先为script_dir和output_dir赋值。

进入循环,重新打开3个shell窗口。跳出循环。将要输出的目录文件添加到目录栈的头部。然后重定向到空设备文件。

接下来进行若干格式的匹配。

最后是将schema_list.yaml文件删除。

最后将栈头的目录文件pop出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值