【发布时间】:2018-04-23 05:52:44
【问题描述】:
我的输入文件格式为:
0 1 0 0 0 1 1 0 0 0 / 1 0 / 1 0 / 1
0 1 0 3/4 1 0 0 1/4 0 0 -1 1/2
0 -1 0 1/4 -1 0 0 3/4 0 0 1 1/2
我想重新排列其中包含分数的行的顺序。目前我有:
#!bin/bash
filename="input.txt"
while ((i++)); read -r line; do
re='[0-9][/][0-9]';
if [[ $line =~ $re ]]
then
echo $line
fi
done < "$filename"
这将回显第二行和第三行。是否有一个 awk 或 sed 命令我可以用来让这两行更改它们的顺序(保持第一行不变)为
$1,$2,$3,$5,$6,$7,$9,$10,$11,$4,$8,$12
这将使我的文件现在看起来像
0 1 0 0 0 1 1 0 0 0 / 1 0 / 1 0 / 1
0 1 0 1 0 0 0 0 -1 3/4 1/4 1/2
0 -1 0 -1 0 0 0 0 1 1/4 3/4 1/2
【问题讨论】:
-
@anubhava 已编辑
-
哈! I remember this format! :-)
-
我知道,我只是想用一种更好的方式来描述我的问题,这可能只会让事情变得更糟。开始认为我不会弄清楚这一点,只需要手动更改所有行
-
您的列是用哪个字符分隔的?这些行是否包含前导分隔符?