【发布时间】:2018-10-21 06:05:35
【问题描述】:
希望这是有道理的。我的理想目标是读取一个文件并用另一个变量更改一个变量,但新变量每次都会递增。
例子:
输入文件-
SAK, 123, 345
SAK, 456, 789
SAK, 789, 901
我希望我的输出看起来像什么 -
1, 123, 345
2, 456, 789
3, 789, 901
如您所见,SAK 被替换为一个数字,但该数字每次都会递增。
我试过这样做:
#!/bin/csh -f
set filename=/export/home/develop/data/buy_load_file.dat
set line=1
set sak_num=1
set search=SAK
set totallines=`wc -l $filename | cut -f1 -d' '`
echo $totallines
while( $line <= $totallines )
`sed "$line s/$search/$sak_num/" $filename`
@ line++
@ sak_num++
end
但是 sed 命令对我永远不起作用。我尝试阅读不同的方法来做到这一点,但我认为我的问题是 $filename 无法正确读取它。我认为 awk 可能是另一个可能做我想做的事情的命令,但不确定如何做。
有什么想法吗?或者也许是一种更简单的方法来获得我想要的输出。 谢谢!
【问题讨论】:
-
C 是如何出现的?您是否打算编写 C 程序并将其编译为可执行文件?这样你的目标确实很容易实现……
-
哎呀!不,我的意思是在 c shell 中
-
不要编写 C shell 脚本。见google.com/search?q=csh+why+not
标签: shell variables awk sed increment