如何使用sed在模式之前和行号之后插入一行到文件中?如何在shell脚本中使用相同的脚本?
这会在具有模式的每一行之前插入一行:
sed '/Sysadmin/i \ Linux Scripting' filename.txt
这将使用行号范围来改变这一点:
sed '1,$ s/A/a/'
那么,现在如何使用这两者(我不能)使用sed在模式之前和行号之后或其他方法中插入一行到文件中呢?
我想在AIX第3行的"Textfile.txt“文件中插入一行”新行“。
插入之前,Textfile.txt看起来像
one
two
four
插入后,Textfile.txt看起来像
one
two
new line
four
我已经在Linux上完成了它,无论如何使用AIX,我都发现它无法使用Linux的解决方案。
令人惊讶的是,我在任何地方都找不到解决这个问题的简单办法。
我在Linux中使用这个命令,并且正在工作。
echo "target_node = ${arr[0]}"
echo "target_file = ${arr[1]}"
echo
我有一个包含混合shell、Perl和Python脚本的Linux文件夹树。所有脚本都没有一致的文件扩展名(.pl、.perl、.py、.sh或根本没有扩展名)。我需要确定哪些文件是Perl脚本,如果变量不在Perl脚本中,则添加新的代码行来设置该变量。
多亏了,我想出了这段代码,它使用sed插入新的代码行。
这段代码可以工作,但是有没有更有效的方法呢?
#! /bin/bash
NL='
$|++'
for f in `find "$1" -type f`
do
if [ $(grep -cP "^\#\!/.+/perl"
我正在尝试在文本文件中出现特定字符串之后插入一行。我尝试使用lineinfile ansible模块,但它只能在文件中匹配字符串的最后一个或第一个实例之后插入一行。有人知道我如何使用shell脚本或ansible剧本来实现这个目标吗?我正在使用linux操作系统,所以任何unix命令来解决这个问题都会有帮助。
如下所示,我试图在以mba开头的每一行之后插入foo:
原始txt文件内容:
foo
ab
zz
foo='dummy'
cd
zz
foo='dats'
lm
xx
必需的输出:
foo
mba
ab
zz
foo='dummy'
mba
假设在linux中有一个文件,它的行用空格分隔。
例如:
This is linux file
This is linux text
This is linux file 1
This is linux file 3
现在我只想打印那些在文件行中有第5列的行。在本例中,我的输出应该是第3行和第4行(其中1和3作为第5列)
做这件事最好的方法是什么?
我有一个文件需要导入到MySQL表中。这是我的命令
LOAD DATA LOCAL INFILE 'C:\test.csv'
INTO TABLE logs
fields terminated by '|'
LINES terminated BY '\n'
这在Windows中看起来很好,但在Linux中它只插入第一行,并在日志文件中生成错误
LOAD DATA LOCAL INFILE '/home/myuser/test.csv'
INTO TABLE logs
fields terminated by '|'
我正在用(GNU) Perl处理一个大文件,(其他可用的工具是: Linux shell工具,一些旧的(>5.0)版本的awk,但不能安装模块)。
我的问题:如果某些field1、field2、field3包含X、Y、Z,我必须在另一个目录中搜索包含field4和field5的文件,并将找到的文件中的一些数据插入到当前输出中。
例如:
实际文件行:
f1 f2 f3 f4 f5
X Y Z A B
现在我需要搜索另一个文件(在另一个目录中),它包含例如
f1 f2 f3 f4
A U B W
并从原始文件写入STDOUT $0,从找到的文件写入f2和f3,然后处理原始文件的
我正在编写一个很小的bash脚本:
-wget是一个html文件,从网络上每隔x分钟一次
-uses some linux utility to find differences in the file between the last two updates
-Uses sed to modify the lines on which new text was detected
我遇到的问题是HTML文件使用内联CSS来格式化表,但是页面的实际代码存储在一行上。
实际上,我需要一个Linux实用程序,它可以扫描一行代码,在每个标记之间查找每个文本实例,并将这些实例插入
我在脚本中使用下面的代码,它应该匹配hosts.test中的"title随机Linux服务器“,并在2行匹配字符串之后将t3文件的文本插入到hosts.test中。但它带来了一些错误。
sed -i.bak '/^title AHS - zarriot CBTS random Linux Servers$/ {N;N; r t3}' hosts.test
有人能帮我吗?
我有以下“问题”: 我有一个包含大量inode的文件,每个inode都在一行上。现在,我将使用Python遍历这些行,并将每一行插入到Linux命令中。为此,我使用for循环迭代该文件。使用icat命令,我可以使用一条命令将单个inode提取到目的地。但是,我每次都必须指定文件的目标名称。我现在的问题是,我在for循环中输入了带有subprocess.run的icat命令,并希望为每次运行分配一个变量名给文件。不幸的是,我不知道怎么做。 文件和file_dir都是变量。 with open(file, "r") as f:
for i in f.readlines()