对 ASCII 文本执行 cut 命令

对 ASCII 文本执行 cut 命令

我有一个以以下方式编写的文本文件:

/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

相关内容