0

次のようなコマンドの出力があります。

/user/bin/this_text_area_islands[0]
/user/bin/this_text_area_seas[0]
/user/bin/this_text_area_volcanoes[0]
/user/bin/this_text_area_continents[0]

これをパイプして、出力ストリーム全体で共通の文字を取得したいと思います。

/user/bin/this_text_area_[0]

もう1つの例:

/user/bin/this_text_area_islands
/user/bin/this_drawing_area_seas
/user/bin/this_paint_area_volcanoes
/user/bin/this_play_area_continents

次のように出力する必要があります:[すべての行のすべての共通文字に一致する]

/user/bin/this_area_
4

1 に答える 1

0

すべてのケースで機能するかどうかはわかりませんが、次の例はあなたの例に当てはまります。

#! /bin/bash

FIRST=$(head -1 $1)
LNB=$(wc -l < $1)

keepright () {
  M=$FIRST
  while [ -n "$M" ]
  do
    M=${M%?}
    [ $(fgrep -c "$M" "$1") -eq $LNB ] && break
  done
}

keepleft () {
  M=$FIRST
  while [ -n "$M" ]
  do
    M=${M#?}
    [ $(fgrep -c "$M" "$1") -eq $LNB ] && break
  done
}

keepright $1; printf "%s" "$M"
keepleft $1; printf "%s\n" "$M"
于 2012-09-18T13:37:47.423 に答える