新聞中心
Linux Shell刪除行首空格:一篇輕松教學(xué)

成都創(chuàng)新互聯(lián)公司致力于網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計,成都網(wǎng)站設(shè)計,集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
Linux作為一個強(qiáng)大的操作系統(tǒng),為用戶提供了多種命令行工具和應(yīng)用程序。Shell作為其中最關(guān)鍵的組成部分之一,為用戶提供了一個與操作系統(tǒng)交互的界面。而在Shell中,刪除行首空格是一個常見的操作,本篇文章將為您帶來輕松的教學(xué)方法。
1. 使用sed命令刪除行首空格
sed是Linux命令行中一個強(qiáng)大的文本編輯工具,可以對文本文件的內(nèi)容進(jìn)行修改和替換。使用sed命令刪除行首空格是一種比較常見的方法,步驟如下:
– 打開需要修改的文件
在終端中輸入以下命令,打開需要修改的文件:
“`
$ vi filename
“`
其中,filename是你需要修改的文件名。
– 使用sed命令刪除行首空格
在打開的文件中,輸入以下命令:
“`
:%s/^ \+//
“`
其中,%^表示行首,\+表示匹配一個或多個空格,//表示刪除匹配到的內(nèi)容。因此這個命令會刪除所有行首的空格。
– 保存并退出文件
完成修改后,先按下Esc鍵,然后輸入以下命令保存并退出文件:
“`
:wq
“`
這個命令會將修改后的文件保存,并退出vi編輯器。
2. 使用awk命令刪除行首空格
awk是一個強(qiáng)大的文本處理工具,可以對文本文件進(jìn)行各種操作。使用awk命令刪除行首空格也是一種常見的方法,步驟如下:
– 打開需要修改的文件
在終端中輸入以下命令,打開需要修改的文件:
“`
$ vi filename
“`
其中,filename是你需要修改的文件名。
– 使用awk命令刪除行首空格
在打開的文件中,輸入以下命令:
“`
$ awk ‘{$1=$1};1’ filename
“`
其中,$1表示每行的之一個字段(默認(rèn)以空格為分隔符),將其賦值為空,再將字段與字段之間的空格重新拼接起來。最后的1表示打印所有行。
– 保存并退出文件
完成修改后,先按下Esc鍵,然后輸入以下命令保存并退出文件:
“`
:wq
“`
這個命令會將修改后的文件保存,并退出vi編輯器。
3. 使用Perl命令刪除行首空格
Perl是一種廣泛用于文本處理和系統(tǒng)管理任務(wù)的編程語言,也可以用來刪除行首空格。步驟如下:
– 打開需要修改的文件
在終端中輸入以下命令,打開需要修改的文件:
“`
$ vi filename
“`
其中,filename是你需要修改的文件名。
– 使用Perl命令刪除行首空格
在打開的文件中,輸入以下命令:
“`
$ perl -ne ‘s/^\s+//; print’ filename
“`
其中,-ne選項(xiàng)表示逐行處理輸入文本,s表示替換操作,^\s+表示匹配行首的一個或多個空格,;后面表示輸出替換后的文本。
– 保存并退出文件
完成修改后,先按下Esc鍵,然后輸入以下命令保存并退出文件:
“`
:wq
“`
這個命令會將修改后的文件保存,并退出vi編輯器。
Linux Shell刪除行首空格的方法有很多種,本篇文章介紹了三種比較常見的方法:使用sed命令、使用awk命令、使用Perl命令。讀者可以根據(jù)自己的喜好和需要選擇其中的一種方法進(jìn)行操作,也可以嘗試使用其他的方法。不管使用哪種方法,只要掌握了刪除行首空格的技巧,相信Linux Shell操作就會更加得心應(yīng)手。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220shell腳本如何刪除指定字符串,文檔如下:
cat filename.txt | awk ‘{print $1″ “$2}’
用正則匹配就可以了。
shell腳本regex正則表達(dá)式 和 字符串替換
任意字符
^行首匹配
$行尾匹配伏畝
^$表示空行,不含字符的行
^
$匹配只有單個空格的行
^
Z>搜索以大寫字母開頭的行
匹配大寫字母意外的任意字符
*表示匹配0個或若干個字符,如:a*,表示匹配0個或若干個a;
aa*表示匹配至少1個a
.*來表示0或若干個任意字符
e.e*表示匹配之一個e和最后一個e之間的任意字符
匹配一
個連字符或數(shù)字
a-z>匹配一個>或者字母
\{min,max\}匹配任意數(shù)目的字符串
\{10\}只匹配10個
a-z字符的字符串
s/.\{5\}$// 刪除每行的最后5個字符
\(…\),n是1到9的數(shù)字,表示存儲用的寄存器,用\n來引
用存在寄存器中的內(nèi)容
^\(.\)\1匹配行首的之一個字符,并將該字符存到1號寄存器中,然后匹配1號寄存器中的內(nèi)容,這由\1的描述。該正則
表達(dá)式的最終效果是,如果一行的頭兩個字符相同,就匹配他們。
^\(.\).*\1$匹配一行中的頭一個字符(^.)跟最后一個字符(\1$)相
同的行。.*匹配中間的所有內(nèi)容
^\(…\)\(…\)行中頭三個字符存在1號寄存器,接著的三個字符存悔中在2號寄存器.
s/\(.*\)
\(.*\)/\2 \1/g 交換兩個字段
.任何字符
^行首
$行尾
*前導(dǎo)的正則表達(dá)式重復(fù)0或若干次
符表>字符中的任一字符
a..表示a后的2個字符
^wood表示行首的wood
x$表示行為的x
^INSERT$只包含
字符串INSERT的行
^$不包含任何字符的行
x*表示缺前森0或若干個連續(xù)的x
xx*表示1或多個連續(xù)的x
.*表示0活若干
個字符
w.*s表示以w開始,s結(jié)尾的任何字符串
小寫或大寫的t
表示任一不在字符表中的字符
\{min,max\}表示前導(dǎo)的正則表達(dá)式重復(fù)只燒min次,至多max次\{3,9\}表示3到
9個數(shù)字
\(...\)表示將小括號中匹配的字符串存儲到下一個寄存器中(1-9),
^\(.\)表示行中第1個字符存到1號寄存器
^\
(.\)\1表示行首戀歌字符,且他們相同
cut -c5 file把file文件中沒行的第5個字符析取出來;
用逗號分割的數(shù)
值列表,如-c1,13,50把第1,13,50個字符析取出來
cut -c20-50把第20到50之間的字符析取出來
如
who | cut
-c1-8
who | cut -c1-8,18- 析取行中的第1到8個字符(用戶名)和第18到行尾的字符(登錄時間)
cut -ddchar
-ffields file其中,dchar是數(shù)據(jù)中分割各字段的分割符,fields表示要從文件file中析取出來的字段.
字
段編號從1開始,而且格式跟以前將的用來指定字符位置的數(shù)字一樣(如-f1、2、8、-f1-3、-f4-)。
cut -d: -f1
/etc/passwd
如果已知字段之間使用制表符分隔的,就可以給cut命令用-f選項(xiàng)而不用-c選項(xiàng),好多了!還記得吧,這里用不著用-d選
項(xiàng)來指定分割符,因?yàn)?/p>
cut把制表符默認(rèn)為分割符。
paste和cut正好相反,它不是把行分離開,而是把多行合并在一起。
paste
names numbrs文件names中的每一行都和numbers中的對應(yīng)行顯示在一起,中間用制表符分割。
如果不想用制表符作默認(rèn)分割,
可以使用-dchars指定分割符
paste -d'+' names addresses numbers
-s選項(xiàng)告訴paste把同
一文件中的行粘貼在一起,而不是從其他文件。如果只指定一個文件名,其效果是把文件中的所有行合并成一行,原來隔行之間用制表符或者有-d選項(xiàng)指定的分割
符分割。
sed是用來編輯數(shù)據(jù)的程序,意指流編輯器(stream editor)。與ed不同,sed不能用于交互,
-n選
項(xiàng),然后使用p命令顯式指定
sed -n '1,2p' file只顯示前2行
sed -n '/Unix/p'
file只打印包含Unix的行
刪除行
d刪除整行文件
sed '1,2d' file刪除1和2行
記住sed默認(rèn)把輸入
的所有行寫入標(biāo)準(zhǔn)輸出,所以生于行的文字,也就是從第3行到結(jié)尾,都被寫入標(biāo)準(zhǔn)輸出。
sed '5d'刪除第5行
sed
'/est/d'刪除包含test或Test的行
sed -n '20,25p' test只顯示文件test的第20行到第25行
sed
'1,10s/unix/UNIX/g' intro報intro前10行中的unix改為UNIX
sed
'/jan/s/-1/-5/'將所有包含jan的行中第1個-1改為-5
sed 's/...//'
data刪除data文件每一行的前3個字符
sed 's/...$//' data刪除data文件每一行的最后3個字符
sed -n 'I'
text顯示文件text的所有行,把所有不可打印字符顯示為\nn,制表符顯示為\t
過濾器tr用來轉(zhuǎn)換來自標(biāo)準(zhǔn)輸入的字
符,tr命令的一般格式為
tr from-chars to-chars
tr e x 或>或glx
-d 目錄
-e 存在
-f 普通文件
-r 進(jìn)程可讀文件
-s 長度不為0
-w
進(jìn)程可寫文件
-x 可執(zhí)行
-L 鏈接文件
$# 傳給程序的參數(shù)個數(shù),或者執(zhí)行set命令設(shè)置的參數(shù)個數(shù)
$*
對位置參數(shù)等的集中引用
$@ 跟$*相似,區(qū)別在于當(dāng)加入雙引號后("$@"),集中引用位置參數(shù)"$1","$2"...等
$0
正執(zhí)行的程序名
$$ 正執(zhí)行程序的進(jìn)程id
$! 最后一個發(fā)生后臺運(yùn)行的程序的進(jìn)程id
$? 最后一個在前臺執(zhí)行的程序的退出狀態(tài)
$-
當(dāng)前有效選項(xiàng)標(biāo)志
`command`符號之間的內(nèi)容為需要執(zhí)行的命令
make -C /lib/modules/`uname -r`/build
M=`pwd`
使用echo可以顯示字符串,但是不能格式化字符串,可以使用printf實(shí)現(xiàn)
printf "format" arg1 arg2
...
ln -s from to 把from鏈接到to上,所以to是from的符號鏈接
tree -d只顯示目錄
tree -L
2顯示2級目錄
字符串比較
s1 = s2 s1等于s2
s1 != s2 s1不等于s2
s
s1不為空
-n ss1不為空
-z ss1為空
整數(shù)比較操作
-eq 等于
-ge
大于或等于
-gt 大于
-le 小于或等于
-lt 小于
-ne 不等于
字符串比較
"$x1" -eq 5 >整數(shù)比較
-a 邏輯與操作
-o 邏輯或操作
command1 &&
command2
則先執(zhí)行command1,如果返回的退出狀態(tài)
為0,則執(zhí)行command2;如果command1返回的退出狀態(tài)非0,則跳過command2
command1 ||
command2
和上邊的&&差不多,只是,僅僅當(dāng)command1返回非0時,才執(zhí)行command2
#!/bin/sh
append2=0
include_lib=1
if
;then
rm cscope_i
fi
for cscope_file in $*; do
if || ;then
# if
$cscope_file = '-a' >;then
# append2=1
# continue
#
fi
#
# if ;then
#
include_lib=0
# continue
# fi
if
>;then
find $cscope_file -maxdepth 1 -name '*.' -o -name
'*.'>>cscope_i
else
find $cscope_file -name
'*.' -o -name '*.'>>cscope_i
fi
else
if
$cscope_file = '-a' >;then
append2=1
elif
>;then
include_lib=0
else
echo "Error: cannot read file
$cscope_file"
fi
fi
done
if ;then
if
"$include_lib" = "1" >;then
cscope -bi cscope_i
else
cscope -bki cscope_i
fi
rm cscope_i
fi
linux shell 刪除行首空格的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux shell 刪除行首空格,輕松教學(xué):Linux Shell刪除行首空格,shell腳本如何刪除指定字符串,文檔如下:的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
網(wǎng)站標(biāo)題:輕松教學(xué):LinuxShell刪除行首空格(linuxshell刪除行首空格)
網(wǎng)頁路徑:http://fisionsoft.com.cn/article/dhicdhj.html


咨詢
建站咨詢
