Я пытаюсь уточнить свой код, избавляясь от ненужных пробелов, пустых строк и имея круглые скобки, сбалансированные с пространством между ними, поэтому:
int a = 4;
if ((a==4) || (b==5))
a++ ;
должен измениться на:
int a = 4;
if ( (a==4) || (b==5) )
a++ ;
Это работает для скобок и пустых строк. Однако он забывает сократить количество пробелов до одного места:
int a = 4;
if ( (a==4) || (b==5) )
a++ ;
Вот мой script:
#!/bin/bash
# Script to refine code
#
filename=read.txt
sed 's/((/( (/g' $filename > new.txt
mv new.txt $filename
sed 's/))/) )/g' $filename > new.txt
mv new.txt $filename
sed 's/ +/ /g' $filename > new.txt
mv new.txt $filename
sed '/^$/d' $filename > new.txt
mv new.txt $filename
Кроме того, есть ли способ сделать этот script более кратким, например. удаление или уменьшение количества команд?