sed、grep 或 tr 命令仅从 UTF-8 文件返回拉丁字符

sed、grep 或 tr 命令仅从 UTF-8 文件返回拉丁字符

我正在处理的文本唐诗300首,不幸的是,这是一个包含中文和英文的单个文件。由于我对“提取”英语感兴趣,因此我希望使用sed, grep,tr简单地返回包含拉丁字符的所有行。例如,这段文字:

051
七言古詩
李頎
聽安萬善吹觱篥歌

南山截竹為觱篥, 此樂本自龜茲出。 
流傳漢地曲轉奇, 涼州胡人為我吹; 
傍鄰聞者多歎息, 遠客思鄉皆淚垂。 
世人解聽不解賞, 長飆風中自來往。 
枯桑老柏寒颼飀, 九雛鳴鳳亂啾啾。 
龍吟虎嘯一時發, 萬籟百泉相與秋。 
忽然更作漁陽摻, 黃雲蕭條白日暗。 
變調如聞楊柳春, 上林繁花照眼新。 
歲夜高堂列明燭, 美酒一杯聲一曲。

Seven-character-ancient-verse
Li Qi
ON HEARING AN WANSHAN PLAY THE REED-PIPE

Bamboo from the southern hills was used to make this pipe. 
And its music, that was introduced from Persia first of all, 
Has taken on new magic through later use in China. 
And now the Tartar from Liangzhou, blowing it for me, 
Drawing a sigh from whosoever hears it, 
Is bringing to a wanderer's eyes homesick tears.... 
Many like to listen; but few understand. 
To and fro at will there's a long wind flying, 
Dry mulberry-trees, old cypresses, trembling in its chill. 
There are nine baby phoenixes, outcrying one another; 
A dragon and a tiger spring up at the same moment; 
Then in a hundred waterfalls ten thousand songs of autumn 
Are suddenly changing to The Yuyang Lament; 
And when yellow clouds grow thin and the white sun darkens, 
They are changing still again to Spring in the Willow Trees. 
Like Imperial Garden flowers, brightening the eye with beauty, 
Are the high-hall candles we have lighted this cold night, 
And with every cup of wine goes another round of music.

我想要一个仅返回第 051 行的命令,跳过中文,然后返回“七字古诗”行以及后面的所有内容。

答案1

下面的 Perl 命令打印不包含任何中文字符的行(Han脚本)。-CIO告诉 perl 输入和输出都以 UTF-8 编码。

perl -CIO -lne '/\p{Han}/ or print'

答案2

为什么不只是:

# grep -e "[a-zA-Z0-9]\|^$" file.txt

答案3

命令

uconv -c -s -t ASCII <<\POEM

051
七言古詩
李頎
聽安萬善吹觱篥歌

南山截竹為觱篥, 此樂本自龜茲出。
流傳漢地曲轉奇, 涼州胡人為我吹;
傍鄰聞者多歎息, 遠客思鄉皆淚垂。
世人解聽不解賞, 長飆風中自來往。
枯桑老柏寒颼飀, 九雛鳴鳳亂啾啾。
龍吟虎嘯一時發, 萬籟百泉相與秋。
忽然更作漁陽摻, 黃雲蕭條白日暗。
變調如聞楊柳春, 上林繁花照眼新。
歲夜高堂列明燭, 美酒一杯聲一曲。

Seven-character-ancient-verse
Li Qi
ON HEARING AN WANSHAN PLAY THE REED-PIPE

Bamboo from the southern hills was used to make this pipe.
And its music, that was introduced from Persia first of all,
Has taken on new magic through later use in China.
And now the Tartar from Liangzhou, blowing it for me,
Drawing a sigh from whosoever hears it,
Is bringing to a wanderer's eyes homesick tears....
#END
POEM

输出

051














Seven-character-ancient-verse
Li Qi
ON HEARING AN WANSHAN PLAY THE REED-PIPE

Bamboo from the southern hills was used to make this pipe.
And its music, that was introduced from Persia first of all,
Has taken on new magic through later use in China.
And now the Tartar from Liangzhou, blowing it for me,
Drawing a sigh from whosoever hears it,
Is bringing to a wanderer's eyes homesick tears....

相关内容