我有一个以以下方式编写的文本文件:
/home/walter197/file_created.txt
/home/walter197/myfile1
/home/walter197/new.txt
/home/walter197/sdl.tar.gz
/home/walter197/sys_info.html
/home/walter197/test2.sh
我编写了以下 shell 脚本来读取文件文本的每一行,剪切第四列(也就是最后一列)并将其写入新文件:
#!/bin/bash
path="/home/walter197/info.txt"
new_file="/home/walter197/new_info.txt"
while IFS= read -r line
do
cut -d "/" -f 4 "$line" | cat $new_file
done < "$path"
exit
当我执行时,cat new_file.txt
我收到了可怕的奇怪的文本。
那么我该如何修复脚本以便在新文件中获得以下内容:
file_created.txt
myfile1
new.txt
sdl.tar.gz
sus_info.html
test2.sh
答案1
你必须改变几件事:
#!/bin/bash
path="/home/walter197/info.txt"
new_file="/home/walter197/new_info.txt"
while IFS= read -r line
do
echo "$line" | cut -d "/" -f 4 >> $new_file
done < "$path"
exit