Automatic update data file and display?

前端 未结 2 2018
温柔的废话
温柔的废话 2021-01-27 08:33

I am trying to develop a system where this application allows user to book ticket seat. I am trying to implement an automatic system(a function) where the app can choose the bes

2条回答
  •  滥情空心
    2021-01-27 09:09

    It's not really clear what help you're asking for here. "Anyone can help?" is a very broad question.

    If you're asking if you're using the right tools then yes, the text processing tools (sed/awk/grep et al) are ideal for this given the initial requirement that it be done in bash in the first place. I'd personally choose a different baseline than bash but, if that's what you've decided, then your tool selection is okay.

    I should mention that bash itself can do a lot of the things you'll probably be doing with the text processing tools and without the expense of starting up external processes. But, since you're using bash, I'm going to assume that performance is not your primary concern (don't get me wrong, bash will probably be fast enough for your purposes).

    I would probably stick with the multi-line data representation for two reasons. The first is that simple text searches for two seats together will be easier if you keep the rows separate from each other. Otherwise, in the 5seat-by-2row XXXX00XXXX, a simplistic search would consider those two 0 seats together despite the fact they're nowhere near each other:

    XXXX0
    0XXXX
    

    Secondly, some people consider the row to be very important. I won't sit in the first five rows at the local cinema simply because I have to keep moving my head to see all the action.

    By way of example, you can get the front-most row with two consecutive seats with (commands are split for readability):

    pax> cat seats.txt
    X000X
    00000
    0XXX0
    
    pax> expr $(
         (echo '00000';cat seats.txt)
             | grep -n 00
             | tail -1
             | sed 's/:.*//'
         ) - 1
    2
    

    The expr magic and extra echo are to ensure you get back 0 if no seats are available. And you can get the first position in that row with:

    pax> cat seats.txt
         | grep 00
         | tail -1
         | awk '{print index($0,"00")}'
    3
    

提交回复
热议问题