Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要使用Unix shell脚本在每行末尾添加空间_Shell_Unix_Add_Space_Using - Fatal编程技术网

需要使用Unix shell脚本在每行末尾添加空间

需要使用Unix shell脚本在每行末尾添加空间,shell,unix,add,space,using,Shell,Unix,Add,Space,Using,我需要在每行末尾添加空格,但标题行除外。下面是我的文件示例: 13120000005000002100000000000000000000081D000 231200000000000 000 00XY018710V000000000 231200000000000 000 00XY018710V000000000 13120000012000007000000000000000000000081D000 2312000

我需要在每行末尾添加空格,但标题行除外。下面是我的文件示例:

13120000005000002100000000000000000000081D000
231200000000000    000     00XY018710V000000000                        
231200000000000    000     00XY018710V000000000
13120000012000007000000000000000000000081D000
231200000000000   000     00XY057119V000000000                        
所以第1行和第4行(从131200开始)是我的标题行…除了标题,我希望每行末尾有7-8个空格

请查找我当前使用的代码:

find_list=`find*.dat-type f`
文件名='*.dat'
filename='xyz'
对于$find_列表中的文件
做
sed-i-e的/\r$/'“$file”
n=1
loopcounterpre=“”
newfile=$(echo“$filename”| sed-e's/\..\..[^.]*$/'))“.dat”
读行时
做
如果[[$line!=*[:space:][]*]]
然后
行详细信息=$line
循环计数器=$(回显“$rowdetail”|剪切-B1-6)
如果[[“$loopcounter”==“$loopcounter”]]
然后
loopcounter=$loopcounter
#按001002的顺序增加的计数器,依此类推,直到更改支付实体
n=$((n+1))
#当支付实体更改时,将计数器重置为1
其他的
loopcounter=$loopcounter
n=1
fi
printf-v m“%03d”$n
llen=$(echo${#rowdetail})
rowdetailT=$(回显“$rowdetail”|剪切-B1-$((llen-3)))
ip=$rowdetailT$m
echo“$ip”>>$newfile
其他的
行详细信息=$line
回显“$rowdetail”>>$newfile
fi
完成<$file
再见
EOF
完成

整个脚本可以替换为一行GNU
sed

sed -is '/^131200\|^1351000/!s/$/       /' $(find *.dat -type f)
使用awk:

$ awk '{print $0 ($0~/^(131200|1351000)/?"":"        ")}' file

print
当前记录
$0
如果它以
$0~/^(131200 | 1351000)/
print
其他
print

那么,是第1行和第4行,还是以131200开头的行,您不希望后面有更多空间?是7或8个空格,还是2行中的任意一行?以131200和1351000开头的行将是头文件…在这些行下将有多行…我们希望在这些行中添加空格我可以在每行末尾添加空格,除了头,但输出文件现在正在修剪文件的前两行和其他行文件生成正确…您能在这里帮助我吗?文件中的多行没有标题…我们已经对标题行执行了一些操作,这非常有效fine@naeemaparween,见修订后的答案。