❶ linux shell 如何把txt文本中每一行提取出來賦值給一變數,再輸出這一變數
使用cat的話可以這樣:
cat 123.txt | while read line
do
echo "$line"
done
123.txt的每行讀取到變數line中並輸出。
❷ 在shell編程中,怎樣對每一行每一列的數據進行操作
用awk工具,awk本身就是以行為單位處理文本流的,還可以根據指定分隔符(默認是TAB或空格)對每行的欄位進行操作。
使用如下結構也可以達到你的目的:
cat file.txt | while read line
do
#處理每行內容 "$line"
done
或者:
while read line
do
#處理每行內容 "$line"
done <file.txt
建議直接給出具體要求,給出源文件的格式示例以及最終要求達到的效果。
❸ linux的shell腳本對比a文件中的每一行內容是不是在b文件中也有這么一行內容
1.不考慮效率的話,可以嘗試,每讀取一行a ,遍歷b的每一行查看是否匹配.(shell大致如下,沒有自己去運行,或許需要調試)
cata.txt|whilereadlinea
do
catb.txt|whilereadlineb
do
if["$linea"="$lineb"];then
echo"$linea"
fi
done
done
2.如果不存在b的一行會包含a的一行.還可以嘗試遍歷a的每一行,然後在b中查找.具體的需要根據文本特點.來分析.
❹ 誰能幫忙解釋下linux shell程序中的sed "s/$//;s/ *//g;/^$/d" 這句是什麼意思
意思是刪除空行,空行包括沒有任何字元的空行,和只有若干個空格的空行。
1、s/$// 在每一行後面追加空。
2、s為搜索。
如:s/a/b/
搜索a將替換為b ,並只替換一次。
3、s/ *//g 將空格刪除。
4、g代表搜索到的全部替換 。
5、「空格星」(" *") 代理多個空格。
6、/^$/d 刪除空行。
作用
catfile.pl
useGetopt::Std;
usevarsqw($opt_d$opt_f$opt_p);
getopts('d:f:p');
print"$opt_d=>$opt_d "if$opt_d;
print"$opt_f=>$opt_f "if$opt_f;
print"$opt_p=>$opt_p
"if$opt_p;
然後在命令行中運行:
perlfile.pl-d20040412-flouiskoochen-p
可得到下列形式的輸出:
$opt_d=>200040412
$opt_f=>louiskoochen
$opt_p=>1
解釋一下"d:f:p",d和f後有冒號,表示-d,-f後面要跟參數。p後面沒有冒號,表示-p後面不帶參數。而且-d,-f後所跟的參數分別賦給變數$opt_d和$opt_f。對於變數$opt_p,若命令行加了-p,則$opt_p=1,否則為0。