我有一个我的mysql数据库的mysqldump备份,包括我们所有的表,大约440兆.我想从mysqldump中恢复其中一个表的内容.这可能吗?从理论上讲,我可以删除重建我想要的表的部分,但我甚至不知道如何有效地编辑大小的文本文档.
我想从文件末尾删除一些n行.这可以用sed完成吗?
例如,要删除2到4行,我可以使用
$ sed '2,4d' file
Run Code Online (Sandbox Code Playgroud)
但我不知道行号.我可以删除最后一行使用
$sed $d file
Run Code Online (Sandbox Code Playgroud)
但我想知道从最后删除n行的方法.请告诉我如何使用sed或其他方法来做到这一点.
这可能是许多常见问题解答 - 而不是使用:
cat file | command
Run Code Online (Sandbox Code Playgroud)
(这被称为无用的猫),正确的方式应该是:
command < file
Run Code Online (Sandbox Code Playgroud)
在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.
更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat别的东西(gzcat,echo,...),添加第二个文件或插入新的过滤器(pv,mbuffer,grep...).
我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.
我的逻辑是否正确(第二个原因)?
我经常会grep -n whatev文件找到我正在寻找的东西.说输出是
1234: whatev 1
5555: whatev 2
6643: whatev 3
Run Code Online (Sandbox Code Playgroud)
如果我想在1234和5555之间提取线条,是否有工具可以做到这一点?对于静态文件,我有一个脚本,它执行文件的wc -l然后进行数学运算以使用tail和head将其拆分,但这对于不断写入的日志文件来说效果不佳.
我需要从给定起始行号和结束行号的文件中提取一定数量的行.
我怎么能在unix下快速执行此操作(实际上是Solaris,因此gnu风格不可用).
谢谢
我想将文件的第10到15行复制到Unix中的另一个文件中。
我有档案file1.txt和file2.txt。
我想将第10到15行从复制file1.txt到file2.txt。
这看起来很傻,但是我还没有找到一个可以做到这一点的工具,所以我想在尝试自己编写代码之前我只想确保一个不存在:
有没有简单的方法cat或less文件的特定行?
我希望这样的行为:
# -s == start && -f == finish
# we want to print lines 5 - 10 of file.txt
cat -s 5 -f 10 file.txt
Run Code Online (Sandbox Code Playgroud)
即使是更简单的东西也会受到赞赏,但我只是不知道有任何工具可以做到这一点:
# print from line 10 to the end of the file
cat -s 10 file.txt
Run Code Online (Sandbox Code Playgroud)
我想,这两个功能的可以用的混合物可以轻松创建head,tail以及wc -l,但也许有建宏认为做到这一点,其中,我不知道?
我有一个大文件,但我需要其中的一部分,即第m(1000) 行和第n(2000)行之间的行。
我怎么才能得到它?(并将其放入一个新的较小的文件中,或在屏幕上打印)
我正在尝试使用提取两个特定行号之间的文本
sed 'startLine,endLined' myFile.txt
Run Code Online (Sandbox Code Playgroud)
但不知何故,它不断从文件的开头提取到 endLine。
这里有什么问题吗?
使用vim将代码块从正在编辑的文件移至另一个文件。
有什么花招可以提高生产力吗?
这个问题与下面的网址很接近,但不完全相同
# tasks
identity lines range in file_A where you are working
append the code block to file_B
remove the code block from file_A
Run Code Online (Sandbox Code Playgroud)
我以前的常规-4个步骤
# write down line range, exit vim
sed -n 1,33p file.pl >> lib/module.pm
vim lib/module.pm - to check
vim file.pl again to delete the code block
Run Code Online (Sandbox Code Playgroud) 假设我有一个文件file.txt:
hello
world
hi
there
this
wow
Run Code Online (Sandbox Code Playgroud)
我知道 sed 可以在一行上运行,例如:
sed -n '2p' file.txt
或范围:
sed -n '2,4p' file.txt
但是如何在一个特定的行加上一个范围上进行操作?
sed -n '1line and 4,5' file.txt 或者用文字打印第一行和从第 4 行到第 5 行的范围??
背景:
(1)这是我从大约700Mb的巨大ascii文件中提取的内容:
0, 0, 0, 0, 0, 0, 0, 0, 3.043678e-05, 3.661498e-05, 2.070347e-05,
2.47175e-05, 1.49877e-05, 3.031176e-05, 2.12128e-05, 2.817522e-05,
1.802658e-05, 7.192285e-06, 8.467806e-06, 2.047874e-05, 9.621194e-05,
4.467542e-05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000421869,
5.0003081213, 0.0001938675, 8.70334e-05, 0.0002973858, 0.0003385935,
8.763598e-05, 2.743326e-05, 0, 0.0001043894, 3.409237e-05, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
Run Code Online (Sandbox Code Playgroud)
(2)我想做两个任务:
(2.1)找到以冒号和分号分隔的数字中的最大值.
它是5.0003081213 …
是否可以使用Linux命令从文本文件中检索第1,11,21,31行的数据?
我需要为2,12,22,32等做同样的事情.