기존 파일에서 단어 목록 순열 생성

기존 파일에서 단어 목록 순열 생성

두 개의 단어 목록 파일이 있습니다. 첫 번째 파일에는 다음이 포함됩니다.

John
Jerry
Jim

두 번째에는 다음이 포함됩니다.

one
two
three

각 파일에는 위의 3개 단어뿐만 아니라 수천 개의 줄이 있습니다. 다음 출력을 얻기 위해 순열을 어떻게 생성할 수 있습니까?

Johnone
Johntwo
Johnthree
Jerryone
Jerrytwo
Jerrythree
..
..
..

답변1

사용, 두 번째 파일을 다음과 같이 조심스럽게 배치하십시오.첫 번째범위:

awk '(NR==FNR) { a[NR]=$0 } (NR != FNR) { for (i in a) { print $0 a[i] } }' file2 file1

이는 file2의 모든 내용을 array 에 저장한 a다음 file1을 (암시적으로) 반복하고 루프의 각 요소에 대해 afile1의 현재 줄을 인쇄한 다음 file2에 저장된 줄을 인쇄합니다. 순서가 보장되지는 않지만 여전히 유효한 배열입니다.

실행 예시:

$ cat file1
John
Jerry
Jim
Jeff

$ cat file2
one
two
three
four

$ awk '(NR==FNR) { a[NR]=$0 }  (NR != FNR) { for (i in a) { print $0 a[i] } }' file2 file1
Johnfour
Johnone
Johntwo
Johnthree
Jerryfour
Jerryone
Jerrytwo
Jerrythree
Jimfour
Jimone
Jimtwo
Jimthree
Jefffour
Jeffone
Jefftwo
Jeffthree

답변2

for w1 in $(cat file1)
do 
  for w2 in $(cat file2)
  do
    word=${w1}${w2}
    echo ${word} >> permutationfile
  done
done

다른 형식 지정 옵션의 경우 명령 printf대신 사용할 수 있습니다.echo

관련 정보