私が得たい結果
hg resolve -l
その形式は
R somefile/filename
U somefile/filename
R somefile/filename
U somefile/filename
「U」で始まる最初の行をパラメータとして使用できるため、次のことができます。
open -t <first U file>
そして
hg resolve -m <first U file>
誰かが私にこれを行うための最良の方法についてのアドバイスを与えることができれば良いでしょう。
編集:以下の答えの解決策は簡単なスクリプトです。
#!/bin/bash
# Script that gets the first file from hg resolve | grep U and passes to default text editor
first_u_file=$(hg resolve -l | grep -m1 '^U')
first_u_file=${first_u_file#U }
echo opening \'$first_u_file\'
open -t "$first_u_file"
答え1
GNU grepを使用して、次のことを試すことができます(テストされていません):
first_u_file=$(hg resolve -l | grep -m1 '^U')
first_u_file=${first_u_file#U }
-mX
X行後に印刷を停止するよう指示しますgrep
(この場合は1).この$(...)
構造は、出力を文字列に変換するバックティックに似ています。 2行目はファイル名の先頭の「U」を削除します。
答え2
より簡単な解決策:
u_file=$( hg resolve -l | awk '/^U/{print $2; exit}' )
答え3
hg resolve -l | egrep '^U.*' | head -n 1
出力は最初のUファイルです。
open
「U」を削除するには、次を引数として使用します。
firstUfile=`hg resolve -l | egrep '^U.*' | head -n 1 | sed -e 's/^U\s+\(.*\)$/"\1"/'`
open -t $firstUfile
答え4
スクリプトは、最初のファイルを開くのではなく、未解決のすべてのファイルを繰り返します。
#!/bin/bash
while read; do
file="${REPLY#U }"
echo "Opening '$file'"
open -t "$file"
hg resolve -m "$file"
done <( hg resolve -l | grep "^U" )
(私はそれに慣れていません。 "U"プレフィックスなしで解析されていないファイルのリストhg
だけを提供しますか?これを行うと、grepおよびUストリッピングステップは必要ありません。)hg resolve -aln