⑴ linux下shell 如何将文件夹下的所有txt文件输出到一个txt文件下去
假如在当前面目录下有1.txt和2.txt,现在我们把它输出到3.txt,具体为:
#!/bin/bash
echo "start file .."
find ./ -name "*.txt" | xargs cat > 3.txt
echo "done !"
你那个出问题应该是因为find在查找的时候没有加引号还有后面再查找的时候要使用管道命令啊
⑵ shell 遍历txt文件,取变量
#!/bin/bash
whilereadline
do
eval"$line"2>/dev/null
done<a.txt
echo$b
⑶ shell脚本如何实现该功能一个文件1.txt内容如下aa bb cc dd 50%
⑷ 通过shell循环逐行读取两个txt文件,将两个不同文建内容拼成一个新文件txt
可以试试cstdiofile类
使用cstdiofile的readstring方法可以一次读取一行,如果前面无用数据的长度是固定的,读取一行后可以再读取第i个字符后的字符串,就可以获得你所需要的数据了,或者使用afxextractsubstring来获得用空格分隔的字符串的某个位置的数据
读取多个文件的话可以用一个循环来读取,读取前先用getstatus方法来判断文件是否存在。
⑸ bash shell 脚本如何将字符串写入到文件中
刚学完新书《实用Linux Shell编程》,写的不错,容易懂,网上和书店都有卖。
现在版试着回答,仅供参考,谢谢。
1)先权保证文件内容正确:
$ cat 1.txt
MYNAME=Liu_Dehua
$ cat 2.txt
name Liang_Chaowei
2)文件1文件2只有唯一字符串,所以情况相对简单。脚本写好了,别忘了给脚本增加执行权限
$ cat build.sh
#!/bin/bash
str1=$(cat 1.txt)
echo ${str1%%=*}=$(cat 2.txt | awk '{print $2}') | tee 1_new.txt
3)运行脚本:
$ ./build.sh
MYNAME=Liang_Chaowei
然后看看新产生的文件,Liang_Chaowei替换了文件1中的Liu_Dehua
$ cat 1_new.txt
MYNAME=Liang_Chaowei
以上在都上机通过了。仅供参考,谢谢。
⑹ bash根据提供的文件名文本1.txt,查找指定目录下data/的该文件,找到后复制到指定文件夹new_data/
它说你没写目标,
用find的话,可以加参数 -exec cp { } ~/Documents/new_data/ \;
⑺ 求shell脚本,删除一个txt文档中包含另外一个txt文档的行。
#!/bin/bash
#
# assume /tmp/a.txt is the file for keywords
# /tmp/b.txt is the file to be operated
awk '
BEGIN{
i=0
while(getline < "/tmp/a.txt" > 0) {
keyword[i++] = $0
}
keysize=i
}
{
flag=0
for(i=0;i<keysize;i++)
if($0 ~ keyword[i])
flag=1
if(flag==0)
print
}' /tmp/b.txt > /tmp/b.txt.tmp
# replace /tmp/b.txt with modified /tmp/b.txt.tmp
mv /tmp/b.txt.tmp /tmp/b.txt
把上述代码保存为脚本。调试:
debian:~/prog/shell# cat /tmp/a.txt
abc def
def
kllmn
delete
debian:~/prog/shell# cat /tmp/b.txt
#!/bin/bash
delete
kllmn
执行脚本后:
debian:~/prog/shell# cat /tmp/b.txt
#!/bin/bash
⑻ 在linux的bash,怎样把文件(a.txt)的内容读到一个变量b里
$ b=`cat a.txt`
`是TAB键上那个
⑼ Bash怎么逐行读取一个文件
对于 bash、ksh、 zsh 和其他的 shells 语法如下
while read -r line; do COMMAND; done < input.file
通过 -r 选项传递给 read 命令以防止阻止解释其版中的反斜杠转义符权。
在 read 命令之前添加 IFS= 选项,来防止首尾的空白字符被去掉。
while IFS= read -r line; do COMMAND_on $line; done < input.file
这是更适合人类阅读的语法:
#!/bin/bashinput="/path/to/txt/file"while IFS= read -r vardo echo "$var"done < "$input"
⑽ linux shell 如何把txt文本中每一行提取出来赋值给一变量,再输出这一变量
使用cat的话可以这样:
cat 123.txt | while read line
do
echo "$line"
done
123.txt的每行读取到变量line中并输出。