![파이프로 구분된 파일에서 필드 행 검색 [닫기]](https://linux55.com/image/141878/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A1%9C%20%EA%B5%AC%EB%B6%84%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%95%84%EB%93%9C%20%ED%96%89%20%EA%B2%80%EC%83%89%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
파이프로 구분된 파일에서 처음 9개 단어를 가져온 다음 다음 9개 단어를 가져와야 합니다.
cat a.txt
a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|
고양이 new.ksh
#! /bin/ksh
a=`awk -F "|" ' { print NF-1 } ' a.txt`
echo $a
예상 출력:
grep -i "a|b|c|d|e|f|g|h|i" b.txt >> c.txt
grep -i "j|k|l|m|n|o|p|q|r" b.txt >> c.txt
grep -i "s|t|u|v|w|x|y|z" b.txt >> c.txt
답변1
sed와 함께
sed -E 's/(([^|]+\|){1,9})/\1\n/g' a.txt
또는 펄
perl -F'\|' -lanE 'while (@F) {say join("|", splice @F, 0, 9), "|"}' a.txt
답변2
어때요?
$ tr '|' $'\n' < file | paste -sd'||||||||\n'
a|b|c|d|e|f|g|h|i
j|k|l|m|n|o|p|q|r
s|t|u|v|w|x|y|z|