[英]Editing text using awk or sed in bash
我的file.txt
的內容是這樣的:
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
1 sdfsdf
3 sdfghj
f fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
我要更改此部分:
1 sdfsdf
3 sdfghj
f fgdfhtyu
為此:(刪除第一列和空格)
sdfsdf
sdfghj
fgdfhtyu
然后將file.txt
的整個輸出重定向到file2.txt
。
這怎么可能...?
謝謝
嘗試將腳本更改為此:
find "$1" -print |
while IFS= read -r line; do
awk '!a[$0]++{print $NF}' "$line" > /tmp/file.txt
done
有什么需要改變的嗎?
使用sed ,您可以執行以下操作
sed 's/^ \+[^ ] \+//' file1.txt > file2.txt
它將刪除行開頭的所有序列,這些序列包含一系列空格,后跟一個非空格字符,而不是一系列空格。 使用問題中的文件,結果為:
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
sdfsdf
sdfghj
fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
應該這樣做:
awk '{print $NF}' file.txt > file2.txt
或一天中最短的解決方案:
awk '{$0=$NF}1' file.txt > file2.txt
cat file2.txt
fghfg
sdfsd
thrt
wefs
dfd
htyj
dfd
gsedf
sdfsdf
sdfghj
fgdfhtyu
dfdsfsd
sdgdfg
sdfzcxzc
fgjty
只需打印最后一列。
另一個簡單的sed
命令,
sed 's/.* \(.*\)/\1/g' file1.txt > file2.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.