【发布时间】:2017-09-02 15:22:15
【问题描述】:
~1
ACCOUNT1
34765367
001
5637463648374
1
32476743
85468456875
003
~1
~2
ACCOUNT2
23587458745647
1
002343
2347938457
~2
....就这样
我想把它打印成下面格式的另一个文件:
ACCOUNT134765367001563746364837413247674385468456875003
ACCOUNT22358745874564710023432347938457
我在下面写了这样的东西,它可以完美地工作到 ~9,但是对于 ~10,它会将 10 记录也添加到 ~1 记录,在 ~1 记录的末尾。我想我需要更新我的正则表达式模式...请帮助
max_input=2
path1=/home
line_number_m=1
while [ ${line_number_m} -le ${max_input} ]
do
o_p=""
sed -n "/^${line_number_m},/^~{line_number_m}/p" ${path1}/temp_op.txt | sed
"s/^${line_number_m}//" > ${path1}/tmp.txt
while read val
do
if [ -z ${val} ]
then
continue
else
o_p=`echo ${o_p}``echo ${val}`
fi
done< ${path1}/tmp.txt
echo ${o_p} >>${path1}/tmp_output.txt
line_number_m=`expr ${line_number_m} + 1`
done
rm ${path1}/tmp.txt
tail -n +2 ${path1}/tmp_output.txt > ${path1}/output.txt
rm ${path1}/tmp_output.txt
exit 0
~1 和~1 内的记录可以是任意随机数或字符,甚至是空格,如下所示: ~1 001 13324324343 常见的 6 487364754557465 --2空格 5874654657 ---3 空间 48567846574 4568746574657 --5个空格--- ~1
我希望我的输出如下所示: 00113324324343COMMON6487364754557465--5874654657---485678465744568746574657-----
【问题讨论】:
-
请告诉我们what you have tried。我们这里的大多数人都很乐意帮助你提高你的手艺,但作为短期无偿编程人员不太乐意。在MCVE 中向我们展示您迄今为止的工作、您期望的结果以及您得到的结果,我们将帮助您解决问题。
-
我已经尝试过上面的代码。它有两个问题。第一个是当我传递 1 到 10 条记录时,它会附加第 1 条和第 10 条记录,第二个是它不考虑空格条记录(如果有的话)。