shell 脚本string的截取

shell-动态读取文件,并把文件每一行参数化,写入到redis cat $1|while read line;do userId=$(echo $line|cut -d' ' -f1); dimension=$(echo $line|cut -d' ' -f2); permission=$(echo $line|cut -d' ' -f3); role=$(echo $line|cut -d' ' -f4); redis-cli -h r-bp1359t0rdsu2u0cxhpd.redis.rds.aliyuncs.com -p 6379 -a ... 阅读详情
目录:
  1. string 的字符串的截取( ${var#*//} )

1. string 的字符串的截取

假设有变量 var=http://www.aaa.com/123.htm

1.1 # 号截取,删除左边字符,保留右边字符。

echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

结果是 :www.aaa.com/123.htm

1.2 ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.aaa.com/

结果是 123.htm

1.3 %号截取,删除右边字符,保留左边字符

echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.aaa.com

1.4 %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

结果是:http:

1.5 从左边第几个字符开始,及字符的个数

echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

1.6 从左边第几个字符开始,一直到结束。

echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。

结果是 :www.aaa.com/123.htm

1.7 从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

1.8 从右边第几个字符开始,一直到结束。

echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。

结果是:123.htm
shell从文本里按行读取数据,并赋值给多个变量(ubuntu) 因为需要用ffmpeg处理一些图片,并且ffmpeg指令中的一些参数需要变化,所以就想着写一个shell脚本进行批处理。虽然代码并没有几行,但是却耗费楼主数小时才搞定,因此记录下该脚本以帮助有相同需求且没有经验的小伙伴。 先说明下楼主的数据格式:文本中每行有三个数据,它们分别用‘,’号分割 例如: 3,4,5 6,7,9 现在着重讲几个代码中用到的参数。 1、for是用来按行读取文本中的内容 2、line代表每行的内容 3、awk是将每行内容进行分段(分割),-F‘,’代表数据按照,进行分段 4、m=$(e 阅读详情

相关推荐

Shell脚本接收位置参数,变量的定义和运算、流程控制语句演示

本文系统介绍了Shell脚本编程中的变量使用和流程控制语句。主要内容包括: 变量部分: 变量获取方式($符号、read命令) 变量类型(局部/全局变量、字符串/整数/数组变量) 变量运算方法($(())、let、expr、bc等) 字符串处理技巧(截取、替换、删除等) 流程控制部分: if语句(单分支/多分支) for循环(常用格式、九九乘法表示例) while循环 case语句(分数等级判断示例) 文章通过大量实例代码演示了Shell脚本编程的核心语法要素,适合作为Shell编程的入门参考。

树下一少年的博客 5650

Shell脚本参数获取的两种方式

Shell脚本参数获取的两种方式

m0_46168848的博客 1万+

Shell技能树---字符串截取

shell字符串截取

renhl252的专栏 2111

shell 参数个数判断,参数判断

寞水

寞水 1万+

告别卡顿闪烁!在Cesium 1.134中集成SOG格式,让400万高斯秒级加载

本文详细介绍了如何在Cesium 1.134中集成SOG格式,实现400万高斯数据的秒级加载,解决传统加载方式导致的卡顿和闪烁问题。通过空间索引重构、属性量化编码和WebGPU原生支持等技术,SOG格式显著提升了三维地理空间可视化的性能。文章还提供了环境准备、模型转换和Cesium集成的实战指南,帮助开发者高效优化项目。

weixin_29313817的博客 498

OpenCV图像去畸变实战指南:从原理到参数调优(附完整代码与效果对比)

本文详细解析了OpenCV图像去畸变的原理与实战方法,对比了三种核心函数(标准、鱼眼、全景模型)的适用场景与效果。重点提供了完整的代码示例,并深入探讨了alpha、焦距、中心点等关键参数的调优技巧,以帮助开发者有效矫正镜头畸变,提升计算机视觉任务精度。

life6的博客 553

shell 脚本string的截取(str1=${str#*string} str2=${str%sring*})

1. shell 脚本中获取文件的后缀:

shuming的专栏 5782

CocosCreator视频播放黑屏?手把手教你封装VideoPlayer组件解决Web环境问题

本文针对Cocos Creator在Web环境下视频播放黑屏等常见问题,提供了一套工程化的VideoPlayer组件封装解决方案。文章深入剖析了浏览器自动播放策略、DOM样式隔离等核心挑战,并手把手教你实现一个健壮的管理器,涵盖兼容性处理、性能优化与内存管理,确保视频播放稳定流畅。

plum99的博客 598

wstring 截取_shell 脚本string的截取(str1=${str#*string} str2=${str%sring*}),

shell 脚本string的截取(str1=${str#*string} str2=${str%sring*}),1. string 的字符串的截取str="I am cao \t shu ming cao \t shu liang"[~]$ echo ${str#*\t} str=${str#*substring}:从左向右截取第一个substring 之后的字符串shu min...

weixin_29359133的博客 207

手把手教你学Simulink——基于多能互补微电网系统的建模与优化场景实例:风柴储联合供电系统在孤岛模式下的功率分配建模

本文介绍了使用MATLAB/Simulink和Simscape Electrical构建风柴储联合供电系统的建模方法。系统包含风力发电、柴油发电、储能电池等模块,重点研究孤岛模式下功率分配策略。详细说明了从创建项目、添加模块到搭建风力发电系统(含MPPT控制)、柴油发电系统及集成各模块的全过程,并提供了仿真参数设置建议。通过分析频率偏差、电池SOC等关键指标,验证了系统在维持稳定运行的同时能有效利用可再生能源。该模型为研究多能互补微电网提供了实验平台,未来可拓展更高效的能量管理策略和AI技术的应用。

MHD0815的博客 1万+

计算机组成原理(第三版)唐朔飞-第一章第二章-课后习题

计算机组成原理

weixin_45735391的博客 7万+

shell里 截取字符串

按指定的字符串截取 1、第一种方法:${varible##*string}从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ${varible%%string*}从右向左截取最后一个string后的字符串 ${varible...

563

杰理SDK入门教程(二):USB升级程序

开发板升级操作指南 摘要:本文介绍了开发板程序升级的两种方式(常规升级和串口升级),重点说明了常规升级的操作步骤: 拨码设置:提供4种拨码方式(不拨/1档/2档/3档),对应不同指示灯状态和按键要求 硬件连接:强制升级工具需正确连接电脑和开发板(注意USB接口方向) 升级流程:根据拨码状态操作按键,观察指示灯变化(红灯常亮绿灯灭表示进入升级模式) 执行升级:运行SDK中的download.bat完成升级 文中还包含拨码开关说明、指示灯状态对照表以及升级原理说明,帮助用户理解升级过程。升级成功后在设备管理器可

qq_42014563的博客 1119

shell截取mysql连接串_shell截取指定字符串之间的内容

#!/bin/bash#截取字符串#path=ss/usr/share/src/root/home/adminpath=ss/usr/share/src/root/home/admin/src/addecho $pathecho ${path%src*} #从右向左截取第一个 src 后的字符串echo ${path}echo ${path%/*}从右向左截取第一个/ 后的字符串echo ${...

weixin_33281416的博客 293

多模态轨迹预测:行人、车辆的交互式推理

多模态轨迹预测:行人、车辆的交互式推理 ,人工智能,计算机视觉,大模型,AI,本文围绕多模态轨迹预测中行人与车辆的交互式推理展开,介绍了其定义,即综合多种信息预测交通参与者未来多种轨迹。涵盖基础概念如轨迹表示、模态、交互关系,技术框架包括数据处理、特征提取、预测模型(物理、机器学习、深度学习模型等)及结果评估。还探讨了交互式推理方法、面临的不确定性处理等挑战、应用场景、未来发展方向、相关工具及实际案例,展现了该技术在智能交通等领域的重要性与发展潜力。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台

处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。

2301_79143213的博客 449

Shell字符串与运算符

其中参数string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一种,表示任意长度的字符串。3) 不被引号包围的字符串 不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。其中,string 是要截取的字符串,start 是起始位置(从左边开始,从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)。请注意*的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以*应该位于 chars 的右侧。

2403_90085828的博客 841

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jenkins 截取字符串_Jenkins shell字符串引用替换

I have a Jenkins job with an execute shell box. In the execute shell I use bash instead of dash (sh). In the execute shell I have strings which are supposed to be interpreted as they contain escape se...

weixin_33331021的博客 788

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

在 shell 脚本中实现字符串的截取和拼接

shell常用的字符串截取和拼接

qq_56406241的博客 954

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

shell-截取字符串

比如 MemFree="MemFree: 278896 kB" MemFree1=${MemFree#*:}#删除冒号左边的字符串(包含冒号) MemFree2=${MemFree1%kB*}#删除kB右边的字符串(包含kB) ${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 ${string: start} 从 strin...

qq_40308101的博客 3306

shell截取字符串

{ "name":"control_group", "params":{ "rank_version":"20200229", "radius":"20120", "max_num":"49800", ...

YMY_mine的博客 535

shell脚本相关

{string:start} 省略长度,直接截取到字符串末尾${string:0-start:length}从右面第几个字符开始向右计数‘${string:0-start} 从右边第几个字符开始截取到字符末尾${string#*chars} 从指定的字符chars截取其往后的字符${string##*chars}匹配到最后一个char${string%chars*}截取chars左边的字符%{string%%chars*}匹配到最后的关键字。

2503_91960863的博客 1036

一文教你入门shell脚本3.0——Shell字符串详解

Shell字符串详解Shell字符串1、字符串的表示形式2、字符串的拼接3、字符串的截取3.1、从指定位置开始截取3.1.1、从字符串左边开始计数3.1.2、从字符串右边开始计数3.2、从指定字符(子字符串)开始截取3.2.1、使用 # 号截取右边字符3.2.2、使用 % 截取左边字符4、字符串长度参考 Shell字符串 1、字符串的表示形式 字符串(String)就是一系列字符的组合。字符串可以由单引号' '包围,也可以由双引号" "包围,也可以不用引号。 str1=c++.program.hello s

JMW1407的博客 703

Shell脚本学习(3)字符串和数组

03- Shell脚本学习–字符串和数组 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似: 单双引号的区别: 双引号里可以有变量,单引号则原样输出; 双引号里可以出现转义字符,单引号则原样输出; 单引号字串中不能出现单引号。 拼接字符串 #!/bin/bash str1='i' str2='love' str3='you' echo $str1 $str2 $str3 e

myroncham的博客 494

Shell脚本8种字符串截取方法总结

原文地址 Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 复制代码代码如下: echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除

只有十分努力,才能看起来毫不费力 6836

Linux截取字符串最后两位,linux的string操作(字符串截取,长度计算)

按指定的字符串截取1、第一种方法:${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串“*”只是一个通配符可以不要例子:$ MYVAR=f...

weixin_32337913的博客 3228
上一篇: foreachPartition和mapPartitions的区别
下一篇: Docker目录挂载(Volume)
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值