删除直到具有BASH的某个字符的行

时间:2015-02-25 14:40:55

标签: bash erase

我有一个像这样的文件

1+1+1+1=4
-2.000000000000
2+1+2+1=6 
-4.000000000000 
3+1+3+1=8 
-4.828427124746
.....

我想删除每一行=之前的字符。

然后我想重新组合两行,试图得到一个像这样的表:

4 -2.000000000000
6 -4.000000000000
8 -4.828427124746
.....

2 个答案:

答案 0 :(得分:4)

你可以使用sed和paste。

$ sed 's/^.*=//' file | paste -d' ' - -
4 -2.000000000000
6 -4.000000000000
8 -4.828427124746

答案 1 :(得分:2)

有效的方法是使用parameter expansion

$ s='1+1+1+1=4'
$ echo ${s##*=}
4

另见BashFAQ #100, on string manipulation in general


要处理整个文件,while read循环是合适的 - 如BashFAQ #001中所述:

while read -r question && read -r answer; do
  echo "${question##*=} $answer"
done <input.txt >output.txt