我有一个包含数千个数字的文本文件,如下所示:
line 1: #0 #1 #2 #3 #4 #5
line 2: #6 #7 #8 #9 #10 #11
...
line 111: #106 #107 #108 #109 #110
line 112: #111 #112 #113 #114 #115
...
我想要做的是将文件格式化为:
line 1: #0 #1 #2 #3 #4 #5 #111 #112 #113 #114 #115 ...
line 2: #6 #7 #8 #9 #10 #11 #116 #117 #118 #119 #120 #121 ...
...
line 111: #106 #107 #108 #109 #110 #218 #219 #220 #221 #222 #223...
基本上我想在111x111矩阵中排列我的数字(所以在前面的第111行将保留到位线112将与第一行合并,行113与第二行合并,这将发生在每111行)。用awk / sed有没有办法做到这一点?
任何帮助将不胜感激!
答案 0 :(得分:1)
试试这个,未经测试,因为你没有提供可测试的样本输入/输出:
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
Log.d(TAG, "onInfo, what = " + what);
if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
// video started; hide the placeholder.
placeholder.setVisibility(View.GONE);
return true;
}
return false;
}
});
以上使用GNU awk进行多字符RS和awk -v RS='\\s' '{ORS=(NR%111?"\n":OFS)}1' file
。
答案 1 :(得分:1)
如果您对使用临时文件感到满意,可以使用split
,然后使用paste
。 split
将文件拆分为每个n
行的较小文件,paste
获取输入文件并垂直连接。
为我们的临时文件选择任意前缀tmp
:
split -l 111 input.txt tmp
paste tmp* >output.txt
rm tmp*