aとbのみを含むファイルがあります。
aaaaaaaaaaaaaabbbbbb
abababaaaabbbaabababa
bbbbbaaaaaa
aaabbbabbbaaaabbaba
abababbabbababbbabbab
abababbababaabaaabbababbaba
bababbbababba
私は次のようにsedを使用してbの前にすべてのaをソートしたいと思います。
aaaaaaaaaaaaaabbbbbb
aaaaaaaaaaaabbbbbbbbb
aaaaaabbbbb
aaaaaaaaaabbbbbbbbb
aaaaaaaabbbbbbbbbbbbb
...
このスクリプトを作成しようとしています。
for row in $(sed -n 'p' $1)
do
for k in $(seq $((${#row}-2)))
do
for j in $(seq $((${#row}-k-1)))
do
if [[ "${row:$j:1}" == a && "${row:$j+1:1}" == b ]]; then
sed -e "s/./a/$j+1/p" $row >> out.txt
fi
done
done
done
しかし、それはうまくいかず、実際にそれを動作させる方法を知りません。しかし、このスクリプトを書いた後、sedタグを使用する方が簡単かもしれません。
しかし、「a」が「b」の前にあることを確認するために、sedでテスト条件を設定する方法、またはsedでループ数を設定する方法は何ですか?
ベストアンサー1
test.txtというファイルを作成し、次のコマンドを実行しました。
sed -e ':loop' -e 's/ba/ab/' -e 't loop' test.txt