파일 A를 사용하여 :병합 내용을 쉘 스크립트를
1
3
5
7
파일 B : 쉘 스크립트에 입력으로 파일 A와 파일 B를 사용하는
2
4
6
8
인가 가능하다 간단히
1
2
3
4
5
6
7
8
파일 A를 사용하여 :병합 내용을 쉘 스크립트를
1
3
5
7
파일 B : 쉘 스크립트에 입력으로 파일 A와 파일 B를 사용하는
2
4
6
8
인가 가능하다 간단히
1
2
3
4
5
6
7
8
사용 paste
그들이 발견하고 정확한 순서로 라인을 인터리브 :
paste -d '\n' filea fileb
을 또는 파일을 결합하고 정렬 sort
를 사용
sort filea fileb
John..that works..thanks .. – Amistad
:
,369 및 내용은 다음과 같습니다 파일 C 인 출력을 얻을sort -n FileA FileB > FileC
을 제공합니다 :
1
2
3
4
5
6
7
8
이것이 항상 작동하지는 않습니다. 내 파일 이름은 알파벳순으로 정렬해도 문제가 해결되지 않습니다 .John Kugelman의 방법은 절대 없습니다 .. – Amistad
할 일이 없습니다. 파일명은 – fugu
'sort -n FileB FileA> FileC'는 같은 결과를 줄 것이다. 거기에'-u'를 붙이기도 좋은 생각 일 수 있습니다. – dannysauer
당신이 쉘 솔루션을 원했다 때문에,
#!/bin/bash
if [ $# -ne 2 ] ; then
echo 'usage: interleave filea fileb >out' >&2
exit 1
fi
exec 3<"$1"
exec 4<"$2"
read -u 3 line_a
ok_a=$?
read -u 4 line_b
ok_b=$?
while [ $ok_a -eq 0 -a $ok_b -eq 0 ] ; do
echo "$line_a"
echo "$line_b"
read -u 3 line_a
ok_a=$?
read -u 4 line_b
ok_b=$?
done
if [ $ok_a -ne 0 -o $ok_b -ne 0 ] ; then
echo 'Error: Inputs differ in length' >&2
exit 1
fi
의
가능한 중복 (http://stackoverflow.com/questions/4011814/how-to [두 개의 텍스트 파일에서 라인을 인터리브하는 방법] -interleave-lines-two-text-files) –