我知道如何向文件添加新文本,但如何编辑它?
示例:hello_world = 1使用以下命令添加到 test.txt:
echo "hello_world = 1" >> test.txt
Run Code Online (Sandbox Code Playgroud)
但我怎么能改1到0还是别的什么?
我如何从中获得:
randomcollege-nt\user90
Run Code Online (Sandbox Code Playgroud)
对此:
user90
Run Code Online (Sandbox Code Playgroud)
使用sed?
我有一个包含多个.txt文件的目录。
从这些文件中的每一个中,我想选择第一行并将其打印到一个新.txt文件中(以获取所有第一行的列表)。
我尝试使用awkandsed命令并将其与循环结合使用,但没有成功。
我有这个json文本:
{
"buildStatus" : {
"status" : "ERROR",
"conditions" : [{
"status" : "OK",
"metricKey" : "bugs"
}, {
"status" : "ERROR",
"metricKey" : "test_success_density"
}, {
"status" : "OK",
"metricKey" : "vulnerabilities"
}
],
"periods" : []
}
}
Run Code Online (Sandbox Code Playgroud)
我想提取buildStatus的整体状态,即预期的输出是“ERROR”
"buildStatus" : {
"status" : "ERROR",
....
}
Run Code Online (Sandbox Code Playgroud)
我尝试了下面的 sed 表达式,但它不起作用,它返回OK:
status= sed -E 's/.*\"buildStatus\":.*\"status\":\"([^\"]*)\",.*/\1/' jsonfile
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我在 bash 变量中有一个 Windows 路径作为字符串:
file='C:\Users\abcd\Downloads\testingFile.log'
Run Code Online (Sandbox Code Playgroud)
我正在尝试将此路径转换为以/c/Users....
我的尝试
以下工作:
file=${file/C://c}
file=${file//\\//}
echo $file
> /c/Users/abcd/Downloads/testingFile.log
Run Code Online (Sandbox Code Playgroud)
问题
在这里,我为包含文件路径的字符串执行了此操作。我问这个问题的原因是我必须在 Ubuntu 16.04 的 bash 脚本中转换 20 个这样的字符串,每次我这样做时,我必须为每次转换写 2 行 - 它占用了大量空间!
题
有没有办法组合这两个命令
file=${file/C://c}
file=${file//\\//}
Run Code Online (Sandbox Code Playgroud)
成一个命令?
是否有任何剪切命令可以根据单词进行剪切,例如:
171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD. The task has terminated abnormally because of a program check. 16:08:27
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.
Run Code Online (Sandbox Code Playgroud)
如何接近?
我有这个文件:
names average
john:15.02
Mark:09.63
James:12.58
Run Code Online (Sandbox Code Playgroud)
我只想从中提取大于 10 的平均值,因此此示例中的输出应为:
15.02
12.58
Run Code Online (Sandbox Code Playgroud) 我正在尝试删除文件中特定模式之后的所有行。
我有很多文件,它们都具有相同的结构:
例子:
文件 1
line 1
...
line x "here there is a specific pattern"
...
EOF
Run Code Online (Sandbox Code Playgroud)
文件 n
line 1
...
line x "here there is a specific pattern"
...
EOF
Run Code Online (Sandbox Code Playgroud)
我试图找到一个简单的解决方案,但由于我有很多文件,所以我走了很长一段路:p
该模式在每个文件中出现一次。
所以,我得到了包含这个模式的所有行号,并保存在一个文件中。
这是我的代码:
count=$(ls -f path_to_folder/*.txt | wc -l)
echo "Number of txt file : $count"
###
for ((i=1;i < $count+1 ;i++))
{
vt=$(grep -n PATTERN $i.txt | cut -d : -f 1)
echo $vt >> PATTERN_line.txt
}
Run Code Online (Sandbox Code Playgroud)
中的每一行都PATTERN_line.txt包含模式所在的每个文件中的行号。
现在,我正在尝试使用这些数字删除模式之后到文件结尾的所有行。
这意味着我需要将文件从头部保留到必须包含的模式行。
我感谢您的帮助
我希望编写一个 shell 脚本,通过它我可以从命令中读取文件并在没有手动干预的情况下编辑文件(基于搜索一些文本并将其替换为另一个)。
我不需要为此使用任何文本编辑器......只需进行文本搜索(如使用 grep),然后用其他文本替换它并保存更改......
有没有办法,理想情况下使用命令行,将多个 .csv 文件转换为一个多表 .xls 电子表格?
如果没有 cli 解决方案,最好知道是否有一个 API 可以在理想情况下在 awk 或 pascal 中工作,但是,如果失败了,在任何事情上都很好。
command-line ×10
text-processing ×10
bash ×2
sed ×2
convert ×1
csv ×1
cut-command ×1
editing ×1
paths ×1
regex ×1
scripts ×1
xls ×1