난 다음, 그것은 \ n을 (빈/단지 포함 개행 라인)라인 줄 바꿈이 경우, 또는 AWK 발견 #
당신은 내가 칠 수있는 방법을 알아 그냥 #하지만 그와 라인을 무시하는 것이 돌 하나 두 마리? I.E. 행에 1 문자 이상이 포함되어 있지 않으면 행을 삭제하십시오.
function check_duplicates {
awk '
FNR==1{files[FILENAME]}
{if((FILENAME, $0) in a) dupsInFile[FILENAME]
else
{a[FILENAME, $0]
dups[$0] = $0 in dups ? (dups[$0] RS FILENAME) : FILENAME
count[$0]++}}
{if ($0 ~ /#/) {
delete dups[$0]
}}
#Print duplicates in more than one file
END{for(k in dups)
{if(count[k] > 1)
{print ("\n\nDuplicate line found: " k) " - In the following file(s)"
print dups[k] }}
printf "\n";
}' $SITEFILES
awk '
NR {
b[$0]++
}
$0 in b {
if ($0 ~ /#/) {
delete b[$0]
}
if (b[$0]>1) {
print ("\n\nRepeated line found: "$0) " - In the following file"
print FILENAME
delete b[$0]
}
}' $SITEFILES
}
예상되는 입력은 대개 다음과 같습니다.
#File Path's
/path/to/file1
/path/to/file2
/path/to/file3
/path/to/file4
#
/more/paths/to/file1
/more/paths/to/file2
/more/paths/to/file3
/more/paths/to/file4
/more/paths/to/file5
/more/paths/to/file5
이 경우/more/paths/to/file5는 두 번 발생하며 그와 같은 플래그가 지정되어야합니다.
그러나 많은 줄 바꿈이 있는데, 나는 그것을 무시하고 싶습니다.
어, 그것은 또한 내가 사후 처리의 톤을하고있어, 그이 : 정말 될 것으로 보인다
괜찮아 경우,이 비트에 대한 AWK 다를 싶지 않아, awk가되어야한다 내가 예상했던 것보다 약간 힘든.
건배, 벤
여러분은 프로그램 흐름을 쉽게 따라갈 수 있도록 형식을 향상시킬 수 있습니다. – 123
또한 dups 어레이를 설정하거나 아무것도 추가하지 않은 것으로 보이는이 전체 프로그램입니까? 실제로 나는이 스크립트에서 당신이 무엇을하려고하는지 잘 풀 수가 없다? 이 스크립트가 해결해야하는 문제를 게시 할 수 있습니까? – 123
위의 업데이트. # 및 \ n 문자를 무시하고 \ n 무시할 수 없습니다. –