【发布时间】:2022-01-18 16:49:01
【问题描述】:
我做了一个脚本来检索源文件的内容,这样我就可以按照我想要的方式创建目标文件。
我执行了一个“sed”命令,以便将“Numérique”这个词更改为“PIC S”。
源文件.txt:
MotifRad;CHAR(2);Motif de radiation
MtPrime;Numérique 8.2;Montant prime d'origine
目标文件.txt:
* Motif de radiation
05 MotifRad PIC X(2).
* Montant prime d'origine
05 MtPrime PIC S 8.2.
如您所见,我确实更改了“Numérique”这个词,但我想在括号中添加如下数字:PIC S (8.2),我该怎么做?
Bash 脚本:
#!/bin/bash
#Fichier Source
fichier="APGFPOLI.des.txt"
champAdd="05 "
if [[ -f "$fichier" ]]
then
# read it
sed 1d $fichier| sed -i 's/CHAR/PIC X/' $fichier | sed -i 's/Numérique/PIC S/' $fichier | while IFS=';' read -r nomChamp format libelle
do
echo \* $libelle
echo $champAdd $nomChamp $format.
done <"$fichier" > test.txt
fi
【问题讨论】:
-
感谢您分享您的努力。你的问题不是 100% 清楚的。这些
05来自哪里?而这个PIC X(2)?请准确说明您要达到的目标,不要指望我们从您的尝试中猜测。 -
05 来自我的变量 champAdd,我需要重新格式化我的源代码,以便我的目标可以像这样,对于 PIC X (2) 也是如此,正如你在我的源代码中看到的那样“ CHAR (2)" 但出于我个人的原因,我需要它是 PIC X。所以我的 sed 命令就在这里。我现在需要的是在我的 PIC S 更改后添加括号。我不想在我的目标中使用 PIC S 8.2,而是希望拥有 PIC S (8.2)
-
好的,所以你的问题只是关于这个 Numérique 行?我建议编辑它并只保留这部分。
-
是的,仅适用于“Numérique”行