내가 얻고 싶은 결과물
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). 이 $(...)
구조는 출력을 문자열로 변환하는 백틱과 유사합니다. 두 번째 줄은 파일 이름 시작 부분의 "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